All Projects → digital-fabric → Polyphony

digital-fabric / Polyphony

Licence: mit
Fine-grained concurrency for Ruby

Programming Languages

c
50402 projects - #5 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Polyphony

Kuma
A network library implemented in C++, supports TCP/UDP/HTTP/HTTP2/WebSocket/SSL on platform Linux/Windows/OSX/iOS/Android.
Stars: ✭ 133 (-43.16%)
Mutual labels:  websocket, networking, http2
Restbed
Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.
Stars: ✭ 1,551 (+562.82%)
Mutual labels:  websocket, http2
Facil.io
Your high performance web application C framework
Stars: ✭ 1,393 (+495.3%)
Mutual labels:  concurrency, networking
Websocket
Minimal and idiomatic WebSocket library for Go
Stars: ✭ 2,013 (+760.26%)
Mutual labels:  websocket, http2
Kotlin Networking
Kotlin Networking - An elegant networking library written in Kotlin
Stars: ✭ 88 (-62.39%)
Mutual labels:  networking, http2
Nodefony Starter
Nodefony Starter Node.js Framework
Stars: ✭ 95 (-59.4%)
Mutual labels:  websocket, http2
Ws Machine
WS-Machine is a websocket finite state machine for client websocket connections (Go)
Stars: ✭ 110 (-52.99%)
Mutual labels:  websocket, networking
Asyncio
asyncio historical repository
Stars: ✭ 952 (+306.84%)
Mutual labels:  concurrency, networking
Vert.x
Vert.x is a tool-kit for building reactive applications on the JVM
Stars: ✭ 12,544 (+5260.68%)
Mutual labels:  concurrency, http2
Lightio
LightIO is a userland implemented green thread library for ruby
Stars: ✭ 165 (-29.49%)
Mutual labels:  concurrency, networking
Smol
A small and fast async runtime for Rust
Stars: ✭ 2,206 (+842.74%)
Mutual labels:  concurrency, networking
Akka Http
The Streaming-first HTTP server/module of Akka
Stars: ✭ 1,163 (+397.01%)
Mutual labels:  websocket, http2
Vibe.d
Official vibe.d development
Stars: ✭ 1,043 (+345.73%)
Mutual labels:  concurrency, networking
Twig
Twig - less is more's web server for golang
Stars: ✭ 98 (-58.12%)
Mutual labels:  websocket, http2
Xmnetworking
A lightweight but powerful network library with simplified and expressive syntax based on AFNetworking.
Stars: ✭ 980 (+318.8%)
Mutual labels:  networking, http2
Grizzly
Writing scalable server applications in the Java™ programming language has always been difficult. Before the advent of the Java New I/O API (NIO), thread management issues made it impossible for a server to scale to thousands of users. The Grizzly NIO framework has been designed to help developers to take advantage of the Java™ NIO API.
Stars: ✭ 209 (-10.68%)
Mutual labels:  websocket, http2
Cowboy
Small, fast, modern HTTP server for Erlang/OTP.
Stars: ✭ 6,533 (+2691.88%)
Mutual labels:  websocket, http2
Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+3070.09%)
Mutual labels:  concurrency, networking
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+736.32%)
Mutual labels:  websocket, networking
Httpcanary
A powerful capture and injection tool for the Android platform
Stars: ✭ 2,188 (+835.04%)
Mutual labels:  websocket, http2

Polyphony
Polyphony

Fine-Grained Concurrency for Ruby

Ruby gem Tests MIT License

DOCS | EXAMPLES

Polyphony | pəˈlɪf(ə)ni |

  1. Music the style of simultaneously combining a number of parts, each forming an individual melody and harmonizing with each other.
  2. Programming a Ruby gem for concurrent programming focusing on performance and developer happiness.

What is Polyphony

Polyphony is a library for building concurrent applications in Ruby. Polyphony harnesses the power of Ruby fibers to provide a cooperative, sequential coroutine-based concurrency model. Under the hood, Polyphony uses io_uring or libev to maximize I/O performance.

Features

  • Co-operative scheduling of concurrent tasks using Ruby fibers.
  • High-performance event reactor for handling I/O events and timers.
  • Natural, sequential programming style that makes it easy to reason about concurrent code.
  • Abstractions and constructs for controlling the execution of concurrent code: supervisors, cancel scopes, throttling, resource pools etc.
  • Code can use native networking classes and libraries, growing support for third-party gems such as pg and redis.
  • Use stdlib classes such as TCPServer, TCPSocket and OpenSSL::SSL::SSLSocket.
  • Competitive performance and scalability characteristics, in terms of both throughput and memory consumption.

Documentation

The complete documentation for Polyphony could be found on the Polyphony website.

Contributing to Polyphony

Issues and pull requests will be gladly accepted. Please use the Polyphony git repository as your primary point of departure for contributing.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].