Git Product home page Git Product logo

tawny's Introduction

๐Ÿฆ‰ 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]

tawny's People

Contributors

nicolasgere avatar tdeboissiere avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.