I wanted to show off a unique way of building APIs in Python. Modern API builders focus on HTTP and JSON. Tino is based on Redis Protocol and MsgPack. This makes it go faster is is simpler to implement both servers and clients.
Some common questions:
> Does Tino use Redis?
No Tino uses RESP, the Redis serialization Protocol.
> Why not use ProtocolBuffers, Thrift, etc.
Both Redis and MsgPack are extremely widely available across languages. If a language doesn't have it, its pretty simple to write either by hand. Other protocols are complex and don't have wide support across languages or you have generate a bunch of code just to call one method.
> How fast is fast?
Tino is 10-20x faster in roundtrips (serializing data structure, server deserializing, then serializing response, client deserializing response) in short to medium messages that don't have any other IO (ie doesnt access the database).
Tino's python client also scales much much better than the Python httpx client, which tends to slow to a crawl under high concurrency loads.
> Is it ready for production?
Tino is built on Uvicorn and the Python Redis client, both of which are production grade. But this is a new project so the standard disclaimer about alpha software should apply.
I wanted to show off a unique way of building APIs in Python. Modern API builders focus on HTTP and JSON. Tino is based on Redis Protocol and MsgPack. This makes it go faster is is simpler to implement both servers and clients.
Some common questions:
> Does Tino use Redis?
No Tino uses RESP, the Redis serialization Protocol.
> Why not use ProtocolBuffers, Thrift, etc.
Both Redis and MsgPack are extremely widely available across languages. If a language doesn't have it, its pretty simple to write either by hand. Other protocols are complex and don't have wide support across languages or you have generate a bunch of code just to call one method.
> How fast is fast?
Tino is 10-20x faster in roundtrips (serializing data structure, server deserializing, then serializing response, client deserializing response) in short to medium messages that don't have any other IO (ie doesnt access the database).
Tino's python client also scales much much better than the Python httpx client, which tends to slow to a crawl under high concurrency loads.
> Is it ready for production?
Tino is built on Uvicorn and the Python Redis client, both of which are production grade. But this is a new project so the standard disclaimer about alpha software should apply.