Coder Social home page Coder Social logo

tufanbarisyildirim / centrifugo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from centrifugal/centrifugo

1.0 1.0 0.0 60.69 MB

Scalable real-time messaging in language-agnostic way

Home Page: https://centrifugal.github.io/centrifugo/

License: MIT License

Go 98.58% Makefile 1.26% Dockerfile 0.16%

centrifugo's Introduction

Join the chat at https://gitter.im/centrifugal/centrifugo Join the chat at https://t.me/joinchat/ABFVWBE0AhkyyhREoaboXQ

Centrifugo is a real-time messaging server. It's language-agnostic and can be used in conjunction with application backend written in any programming language. Centrifugo runs as separate service and keeps persistent Websocket or SockJS connections from your application clients (from web browsers or other environments like iOS/Android apps). When you need to deliver event to your clients in real-time you publish it to Centrifugo API and Centrifugo then broadcasts event to all connected clients interested in this event (i.e. clients subscribed on event channel). In other words – this is a user-facing PUB/SUB server.

See server documentation.

scheme

You can also find the following posts interesting:

How to install

Releases available as single executable files – just download latest release for your platform, unpack and run.

If you are on MacOS:

brew tap centrifugal/centrifugo
brew install centrifugo

See official Docker image.

There are also packages for 64-bit Debian, Centos and Ubuntu.

Demo

Try our demo instance on Heroku (admin password is password, secret is secret, API key is api_key). Or deploy your own Centrifugo instance in one click:

Deploy

Highlights

  • Fast server capable to serve thousands of simultaneous connections
  • Scale to millions of connections with Redis PUB/SUB, Redis Sentinel for high availability, consistent sharding support
  • Easily integrates with any application – works as separate self-hosted service
  • HTTP and GRPC API to communicate from your application backend (publish messages in channels etc)
  • JSON and binary Protobuf Websocket client protocol
  • SockJS polyfill for web browsers without Websocket support (JSON only)
  • JWT-based user authentication and private channel authorization
  • Presence information for channels (show all active clients in channel)
  • History information for channels (last messages published into channel)
  • Join/leave events for channels (client goes online/offline)
  • Automatically recover missed messages between client reconnects over configured retention period
  • Built-in admin web panel
  • Cross platform – works on Linux, MacOS and Windows
  • Ready to deploy (Docker, RPM/DEB packages, Nginx configuration, automatic Let's Encrypt TLS certificates, Prometheus/Graphite monitoring)
  • MIT license

centrifugo's People

Contributors

banks avatar chebyrash avatar dchest avatar dvrkps avatar fhalim avatar fzambia avatar gitter-badger avatar khvalov avatar klauspost avatar lopatkinevgeniy avatar lxm avatar oleh-ozimok avatar orthographic-pedant avatar sannis avatar silence44 avatar sobolevn avatar vitoordaz avatar vladshut avatar

Stargazers

 avatar

Watchers

 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.