All Projects → mattaylor → whip

mattaylor / whip

Licence: other
Simple fast http server for nim based on httpbeast and nest for high performance routing

Programming Languages

nim
578 projects
shell
77523 projects
go
31211 projects - #10 most used programming language
lua
6591 projects

Projects that are alternatives of or similar to whip

Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (+187.27%)
Mutual labels:  fast, router
Lion
Lion is a fast HTTP router for building modern scalable modular REST APIs in Go
Stars: ✭ 750 (+1263.64%)
Mutual labels:  fast, router
Foxify
The fast, easy to use & typescript ready web framework for Node.js
Stars: ✭ 138 (+150.91%)
Mutual labels:  fast, router
Sheet Router
fast, modular client-side router
Stars: ✭ 219 (+298.18%)
Mutual labels:  fast, router
Router
Router implementation for fasthttp
Stars: ✭ 234 (+325.45%)
Mutual labels:  fast, router
amber-router
A URL Routing shard.
Stars: ✭ 16 (-70.91%)
Mutual labels:  fast, router
Clevergo
👅 CleverGo is a lightweight, feature rich and high performance HTTP router for Go.
Stars: ✭ 246 (+347.27%)
Mutual labels:  fast, router
koa-rest-router
Most powerful, flexible and composable router for building enterprise RESTful APIs easily!
Stars: ✭ 67 (+21.82%)
Mutual labels:  fast, router
lz4-napi
Fastest lz4 compression library in Node.js, powered by napi-rs and lz4-flex.
Stars: ✭ 29 (-47.27%)
Mutual labels:  fast
highway
Highway - A Modern Javascript Transitions Manager
Stars: ✭ 1,349 (+2352.73%)
Mutual labels:  router
yew-router
Router extension to yew
Stars: ✭ 27 (-50.91%)
Mutual labels:  router
toro
Tree oriented routing
Stars: ✭ 116 (+110.91%)
Mutual labels:  fast
QueryNinja
Framework for dynamic query building regardless of the source and target.
Stars: ✭ 19 (-65.45%)
Mutual labels:  nest
yarr
A React router library enabling the render-as-you-fetch concurrent UI pattern.
Stars: ✭ 97 (+76.36%)
Mutual labels:  router
universal-router
↩️ Router for every occasions
Stars: ✭ 64 (+16.36%)
Mutual labels:  router
smoovy
A collection of small and useful js packages (smooth scrolling, utils, etc.) preventing copy & paste
Stars: ✭ 25 (-54.55%)
Mutual labels:  router
react-mobx-router5
React components for routing solution using router5 and mobx
Stars: ✭ 58 (+5.45%)
Mutual labels:  router
pinipig
🚀 Performant webservice framework
Stars: ✭ 25 (-54.55%)
Mutual labels:  fast
infrared
✨🚀 Blazing fast, inferred static type checker for JavaScript.
Stars: ✭ 46 (-16.36%)
Mutual labels:  fast
wolfpacs
WolfPACS is an DICOM load balancer written in Erlang.
Stars: ✭ 1 (-98.18%)
Mutual labels:  router

WHIP

WHIP is a high performance web application server based on the excellent https://github.com/dom96/httpbeast and routing provided by https://github.com/kedean/nest with some additonal optimizations.

WHIP is still in development and is not recomended for production use. Much is still missing or untested but for basic api use cases however, the performance numbers look pretty good so far (see below).

Its Simple

import ../whip, sugar, json

let w = initWhip()
w.onGet "/json/{name}", (w:Wreq) => w.send(%*{ "name": w.path("name")})
w.onGet "/text/{name}", (w:Wreq) => w.send("hello " & w.path("name"))
w.start()

Its Fast.

As fast as Httpbeast for simple routes and upto 3x faster than Jester for complex routing.

Compared to Go, it is a little quicker than Gin-gonic but slower than fastrouter.

Very unscientific benchmarks...

Framework Lang /text/{name} /json/{name} /text
Whip Nim 66.2k (0.15) 56.4k (0.17) 70.0k (0.14)
HttpBeast Nim N/A N/A 68.2k (0.14)
Jester Nim 16.2k (0.59) 15.6k (0.63) 56.7k (0.17)
Mofuw Nim 8.71k (1.14) 8.13k (1.23) 9.13 (1.23)
GinGonic Go 58.4k (0.14) 57.8k (0.15) 57.5k (0.15)
FastRouter Go 89.5k (0.09) N/A 90.3k (0.09)

Total Reqs/Sec (Mean latencies in ms) taken from the best of 3 wrk runs using 2 threads and 10 connections for 10 secs For latest results see [[results.txt]]

To run ..

./bench.sh -c

Its WIP

Coming soon..

  • middleware api
  • websockets (mqtt)
  • swagger docs
  • smarter headers
  • session storage (redis)
  • sql db adapters (postgrest, graphql)
  • smart caching
  • static html serving
  • html templates (jade)
  • authentication (oauth, jwt)
  • aws lambda interop
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].