Tino
ranch
Tino | ranch | |
---|---|---|
2 | 3 | |
172 | 1,176 | |
- | 0.4% | |
10.0 | 4.8 | |
almost 4 years ago | 9 days ago | |
Python | Erlang | |
MIT License | ISC License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Tino
-
Build an Elixir Redis Server that's 100x faster than HTTP
Author here, combining Redis protocol and MsgPack is a much more platform independent way of building a protocol.
The redis protocol and Msppack are both only a a hundred lines or so for a parser. Meaning you can build your own from scratch in a new language if one isn’t supported.
Its also stupid fast.
Compared to protocol buffers which can be extremely complicated to grok on the binary level.
I built a more robust API RPC for Python here based on Redis and MsgPack: https://github.com/hansonkd/tino
-
Build an Elixir Redis API that's 100x faster than HTTP in less than 10 minutes
I have reproduced these findings in Python against the fastest HTTP frameworks. https://github.com/hansonkd/Tino/
ranch
-
Oh Erlang... where have you been all my life?
RE: HTTP/Web Sockets/TCP/UDP/etc. - check out NineNines libraries: Ranch (TCP Socket Acceptor), Cowboy (HTTP Server), Gun (HTTP client), and CowLib (General HTTP/SPDY library) are pretty good from what I hear.
-
Build an Elixir Redis Server that's 100x faster than HTTP
Ranch is a pretty well optimized and battle hardened tcp acceptor. It powers the Cowboy/Phoenix server which scales to extreme level of concurrency and low latency. Cowboy uses ranch to pool and accept connections and I believe it uses {active,once}.
https://github.com/ninenines/cowboy
https://github.com/ninenines/ranch
-
Why SOLID may be useful for you in Elixir
SMPPEX is based on ranch and handles TCP connections in the following way:
What are some alternatives?
cowboy - Small, fast, modern HTTP server for Erlang/OTP.
cowlib - Support library for manipulating Web protocols.
gun - HTTP/1.1, HTTP/2, Websocket client (and more) for Erlang/OTP.
voomex - Send and receive SMPP messages via HTTP API
telemetry - Dynamic dispatching library for metrics and instrumentations.
smppex_telemetry - Library for tracing SMPP session events with telemetry
SMPPEX - ✉️ SMPP 3.4 protocol and framework implementation in Elixir