All Projects → Jarlakxen → Reactive Serial

Jarlakxen / Reactive Serial

Licence: apache-2.0
Reactive Streams API for Serial Communication

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Reactive Serial

alpakka-samples
Example projects building Reactive Integrations using Alpakka
Stars: ✭ 61 (+154.17%)
Mutual labels:  akka, reactive-streams
Alpakka
Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
Stars: ✭ 1,154 (+4708.33%)
Mutual labels:  reactive-streams, akka
Toketi Iothubreact
Akka Stream library for Azure IoT Hub
Stars: ✭ 36 (+50%)
Mutual labels:  reactive-streams, akka
Alpakka Kafka
Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
Stars: ✭ 1,295 (+5295.83%)
Mutual labels:  reactive-streams, akka
akka-stream-mon
Throughput and latency monitoring for Akka Streams
Stars: ✭ 23 (-4.17%)
Mutual labels:  akka, reactive-streams
Kmq
Kafka-based message queue
Stars: ✭ 239 (+895.83%)
Mutual labels:  reactive-streams, akka
Clickhouse Scala Client
Clickhouse Scala Client with Reactive Streams support
Stars: ✭ 84 (+250%)
Mutual labels:  reactive-streams, akka
akka-cookbook
提供清晰、实用的Akka应用指导
Stars: ✭ 30 (+25%)
Mutual labels:  akka, reactive-streams
Akka Grpc
Akka gRPC
Stars: ✭ 361 (+1404.17%)
Mutual labels:  reactive-streams, akka
Rxjavaextensions
RxJava 2.x & 3.x extra sources, operators and components and ports of many 1.x companion libraries.
Stars: ✭ 662 (+2658.33%)
Mutual labels:  reactive-streams
Gearpump
Lightweight real-time big data streaming engine over Akka
Stars: ✭ 745 (+3004.17%)
Mutual labels:  akka
Gatling
Modern Load Testing as Code
Stars: ✭ 5,381 (+22320.83%)
Mutual labels:  akka
Combineext
CombineExt provides a collection of operators, publishers and utilities for Combine, that are not provided by Apple themselves, but are common in other Reactive Frameworks and standards.
Stars: ✭ 682 (+2741.67%)
Mutual labels:  reactive-streams
Wezterm
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Stars: ✭ 770 (+3108.33%)
Mutual labels:  serial
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (+2633.33%)
Mutual labels:  reactive-streams
Akka Cluster Custom Downing
akka-cluster-custom-downing provides configurable auto-downing strategy you can choose based on your distributed application design.
Stars: ✭ 20 (-16.67%)
Mutual labels:  akka
Androbd
Android OBD diagnostics with any ELM327 adapter
Stars: ✭ 573 (+2287.5%)
Mutual labels:  serial
Akka Http Json
Integrate some of the best JSON libs in Scala with Akka HTTP
Stars: ✭ 530 (+2108.33%)
Mutual labels:  akka
Scalecube Services
v2.0 - ScaleCube Services provides a low latency Reactive Microservices library for serverless service registry and discovery based on gossip protocol and without single point-of-failure or bottlenecks.
Stars: ✭ 23 (-4.17%)
Mutual labels:  reactive-streams
Pyquino
python3 serial port with PyQt5 Gui
Stars: ✭ 19 (-20.83%)
Mutual labels:  serial

Reactive Streams for Serial Communication

Reactive Streams wrapper for jSerialComm.

Available for 2.11 and 2.12:

resolvers += Resolver.bintrayRepo("jarlakxen", "maven")
libraryDependencies += "com.github.jarlakxen" %% "reactive-serial" % "1.4"

Example usage

import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.{Sink, Source}
import com.github.jarlakxen.reactive.serial.ReactiveSerial

implicit val actorSystem = ActorSystem("ReactiveSerial")
implicit val materializer = ActorMaterializer()

val serialPort = ReactiveSerial.port("/dev/ttyUSB0")

val serial = ReactiveSerial(port = serialPort, baudRate = 57600)

val publisher: Publisher[ByteString] = serial.publisher(bufferSize=100)
val subscriber: Subscriber[ByteString] = serial.subscriber(requestStrategyProvider=ZeroRequestStrategy)

Source.fromPublisher(publisher).map(_.message().toUpperCase).to(Sink.fromSubscriber(subscriber)).run()
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].