Skip to content
socket with reactive style.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example/src/main
project
src
task/src/main/scala/chain
.gitignore
README.md
build.sbt

README.md

RxSocket - socket with reactive style.

Why do this project

Reactive programming has a important concept of stream which allow application scale vertically and apply good multi-thread dispatch for concurrent event.Network programming is designed as many layer for different data types. It's nature and useful if use Reactive Style to implement network data stream.At upper of TCP, the library complete a basic function of Session Layer and Json Presentation Layer.

SBT Usage

From v0.12.0, RxSocket only support Scala 2.12.x and 2.11.x

"com.scalachan" %% "rxsocket" % "0.13.1"

Features

  • do logic with reactive style with Observable and Future
  • with RPC stream can get a pipe-like socket communicate.
  • Asynchronous & Non-blocking
  • Json based Server mode make it easy to build TCP service.
  • consume data with back-pressure
  • custom protocol parser which could be active mode or passive mode

Example

TODO

  • support heartbeat
    • timing wheel
  • priority scheduler thread pool
    • avoid request callback re-enqueue to thread pool(forkjoinpool now) caused timeout.
    • allow handler massive request and give a slight performance affect
      • give a space to monitor network request status
  • better benchmark
You can’t perform that action at this time.