Skip to content

nicolasgere/tawny

Repository files navigation

🦉 Tawny 🦉

Gitter chat Reliability Rating Quality Gate Status Security Rating

🚀 Tawny is an extremely low latency, public facing pubsub. It uses protobuf for end-to-end communication (from browser to server and server to browser) using grpc-web protocol. It allows you to build an awesome user experience with realtime features.

Core features

Tawny was designed with performance/scaling/reliability in mind. It provides multiple keys feature:

  • Publish/Subscribe, publish a message from anywhere and get your users notified instantly.
  • Presence, know who is connected or not in a channel, perfect for building presense feature like google docs.
  • State, you can share a state with your presence, awesome for "is typing" feature.
  • Binary data, thanks to profobuf/grpc, your payload doesn't need to be json. It can be every binary file
  • Private channel, you can control who has access to a channel.
  • Complete admin library/cli, manage your Tawny server using a powerful admin api.
  • Monitoring, monitor your server easily with our promotheus (and more to come) metrics exporter.

HTTP2/Protobuff advantage over HTTP1/json

  • Network bandwidth Profobuf allows the app to use less bandwidth as demonstrated there.auth0 blog
  • Usage of http2 Http2 is the new version of the famous http protocol, faster, more reliable, allows server push and much more. cloudfare blog
  • Binary data You can send raw binary data with tawny using protobuff.

Getting started

Visit the documentation

Feature roadmap

This is our feature roadmap. If you want to ask for a new feature, please open an issue

v0.1 Alpha => On going
  • Push service (Public facing publish/subscrib)
  • Presence service (Presence on channel/topic with state)
  • Admin service
  • Typescript web npm package
  • Typescript server npm package
  • Golang module
  • Automatic TLS termination for https
  • GRPC secure mode
  • Docker image
  • Protected topic (message can only be pushed from authenticated admin request)
Backlog
  • Secure channel
  • Cluster mode
  • Admin ui
  • Clients (java/swift/php/c#/python)

Performance

With 1 core / 1gb of ram on Digital ocean, Tawny is able to process up to 50k messages seconds within < 5 ms latency.

Community

Join us on gitter

Show your support

Give a ⭐️ if you support the project!


_This README was generated with ❤️ by [readme-md-generator]

About

A public facing pubsub on steroide powered by protobuf/grpc/grpc-web/badger

Resources

Stars

Watchers

Forks

Packages

No packages published