All Projects → parsonsmatt → rowdy

parsonsmatt / rowdy

Licence: other
A convenient DSL for describing web routes

Programming Languages

haskell
3896 projects
Makefile
30231 projects

Labels

Projects that are alternatives of or similar to rowdy

go router
The purpose of the go_router for Flutter is to use declarative routes to reduce complexity, regardless of the platform you're targeting (mobile, web, desktop), handling deep linking from Android, iOS and the web while still allowing an easy-to-use developer experience.
Stars: ✭ 380 (+783.72%)
Mutual labels:  routing
otp-tutorial
Introductory tutorial (approx. 3 hours) covering the setup and querying of an OpenTripPlanner instance
Stars: ✭ 85 (+97.67%)
Mutual labels:  routing
ASMapLauncher
ASMapLauncher is a library for iOS written in Swift that helps navigation with various mapping applications.
Stars: ✭ 41 (-4.65%)
Mutual labels:  routing
react-mobx-router5
React components for routing solution using router5 and mobx
Stars: ✭ 58 (+34.88%)
Mutual labels:  routing
multipath
Multipath routing with Ryu and Pyretic SDN Controllers
Stars: ✭ 56 (+30.23%)
Mutual labels:  routing
geoip
🌚 🌍 🌝 GeoIP 规则文件加强版,同时支持定制 V2Ray dat 格式路由规则文件 geoip.dat 和 MaxMind mmdb 格式文件 Country.mmdb。Enhanced edition of GeoIP files for V2Ray, Xray-core, Trojan-Go, Clash and Leaf, with replaced CN IPv4 CIDR available from ipip.net, appended CIDR lists and more.
Stars: ✭ 524 (+1118.6%)
Mutual labels:  routing
mswjs.io
Official website and documentation for the Mock Service Worker library.
Stars: ✭ 77 (+79.07%)
Mutual labels:  routing
k-domains
A simple module to manage multiple subdomains with just one project
Stars: ✭ 41 (-4.65%)
Mutual labels:  routing
angular-routing
Angular 13 Example Routing
Stars: ✭ 21 (-51.16%)
Mutual labels:  routing
gatsby-plugin-dynamic-routes
Creating dynamic routes based on your environment and/or renaming existing routes
Stars: ✭ 14 (-67.44%)
Mutual labels:  routing
yew-router
Router extension to yew
Stars: ✭ 27 (-37.21%)
Mutual labels:  routing
purescript-swerve
Swerve is a library that offers a type-level DSL for describing server and client web applications. Inspired by Haskell's Servant library.
Stars: ✭ 20 (-53.49%)
Mutual labels:  routing
cu-gr
CUGR, VLSI Global Routing Tool Developed by CUHK
Stars: ✭ 61 (+41.86%)
Mutual labels:  routing
r5r
ipeagit.github.io/r5r/
Stars: ✭ 90 (+109.3%)
Mutual labels:  routing
motis
Intermodal Mobility Information System
Stars: ✭ 45 (+4.65%)
Mutual labels:  routing
consul-envoy
Consul to Envoy API listener
Stars: ✭ 35 (-18.6%)
Mutual labels:  routing
Giraffe.TokenRouter
Alternative routing API for Giraffe web applications which is aimed at maximum performance.
Stars: ✭ 21 (-51.16%)
Mutual labels:  routing
koii
A simple middleware for displaying routes in an express application
Stars: ✭ 73 (+69.77%)
Mutual labels:  routing
everip
The Elastic Versatile Encrypted Relay for IP (EVER/IP) Networking Suite
Stars: ✭ 32 (-25.58%)
Mutual labels:  routing
microzord
Simple and powerful Micro Frontends framework
Stars: ✭ 81 (+88.37%)
Mutual labels:  routing

rowdy

Build Status

rowdy is DSL for defining web application routes. Check out the examples!

Why?

Servant has a cool DSL for routes. It is embedded into the type system, and type level programming in Haskell isn't nearly as pleasant as value-level programming. As a result, there can be a lot of complexity with common combinators, and you must be familiar with advanced type-level techniques to work with it.

Yesod has a cool DSL for routes. It uses a Template Haskell quasiquoter to parse a non-Haskell DSL into a data structure, which is then used to generate routes. Since it isn't Haskell, you don't get good error messages, syntax highlighting, or the ability to define your own combinators.

rowdy is a value level DSL for defining routes. A Template Haskell splice can then interpret the value at compile-time and provide a Yesod representation, or a Servant representation, or whatever else you'd like!

Future plans

Currently, rowdy supports Yesod-style routes concretely and completely. The Servant support is limited and not ready for publish yet -- if you have ideas for providing an extensible design for this, please let me know!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].