• Stars
    star
    128
  • Rank 281,044 (Top 6 %)
  • Language
    Scala
  • License
    BSD 3-Clause "New...
  • Created over 11 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reactive serial communication library for Akka and Scala.

Scaladex Build Status Download

akka-serial

Serial communication library for Scala, designed to be reactive, lightweight and easily integrable with Akka applications. See the website for a guide.

Highlights

  • Reactive: only does work when required (no constant polling of ports or blocking IO)
  • Integrates seamlessly with Akka
  • Portable to POSIX systems
  • Watchable ports: react to connection of new device
  • Compatible with Reactive Streams

Native side

Since hardware is involved in serial communication, a Scala-only solution is not possible. Nevertheless, the native code is kept simple and minimalistic with the burden of dealing with threads left to Scala. The code aims to be POSIX compliant and therefore easily portable.

Directory Structure

akka-serial/
├── Documentation         Sources for user documentation as published on the website.
├── core                  Main Scala source files.
├── dev                   Firmware samples for serial devices, to make testing easier.
├── native                C sources used to implement serial communication.
│   └── lib_native        Compiled native libraries that are published in the fat jar.
├── project               Build configuration.
├── samples               Runnable example projects.
├── stream                Stream API, used to connect with Akka streams.
└── sync                  Synchronous, non-Akka-dependent code.

Website source code is in the git branch 'gh-pages'.

Build

Detailed documentation on building akka-serial is available on the website (or, equivalently, in developer.md).

Since akka-serial integrates into the Akka-IO framework, a good resource on its general design is the framework's documentation.

This project is also an experiment on working with JNI and automating build infrastructure.

Copying

akka-serial is released under the terms of the 3-clause BSD license. See LICENSE for details.

Notes

This project used to be called "flow". It was renamed to "akka-serial".

More Repositories

1

sbt-gpg

Simple and secure artifact signing for sbt.
Scala
50
star
2

simplesql

A no-frills SQL library for Scala 3
Scala
27
star
3

setup-mill

GitHub Action to set up mill
JavaScript
18
star
4

scala-argparse

Pragmatic command line parsing and configuration for Scala apps
Scala
13
star
5

scala-makefile

A simple makefile for Scala projects
Makefile
10
star
6

ppclib

How to build a staged DSL with Scala 3, using Privacy Preserving Computation as an illustration
Scala
7
star
7

yamlesque

Reads like yaml, writes like yaml; it must be yaml!
Scala
6
star
8

k8055

Library for the Velleman K8055 USB Experiment Board
C
6
star
9

escale

Lightweight channels on top of scala-async
Scala
5
star
10

nuttx

Port of the Nuttx operating system (http://www.nuttx.org/) to the Kinetis K20 architecture.
C
4
star
11

mill-jnilib

Scala
3
star
12

sims

A library for rigid body simulation written in Scala. This project was created under the terms of a one-year project at school (Gymnase de Burier). Another program for testing and visualizing SiMS, Graphyx, is included.
Scala
3
star
13

scalapb-ujson

ScalaPB to JSON conversions and vice versa
Scala
3
star
14

ace

Arduino Communication protocol, Ensured (ACE)
Scala
2
star
15

commando

Pragmatic command line parsing
Scala
2
star
16

scala-triad

Scala JVM, JS and Native all in one application
Scala
2
star
17

toggle-workspace

Gnome 3 extension enabling fast switching between the current and primary workspaces.
JavaScript
2
star
18

codename

Small utility to generate code names, suitable for placeholders of project names.
Scala
2
star
19

mux

A realtime, preemptive kernel for 8-bit AVR microcontrollers.
C
1
star
20

sims2

SiMS2 is a 2D mechanics simulation library written in Scala.
Scala
1
star
21

vcluster

Run a virtual spark cluster on your local machine
Shell
1
star
22

infra

Scripts for managing various infrastructure
HCL
1
star
23

scalam

Scientific calculation utility library for Scala. Uses Breeze, can generate Matlab.
Scala
1
star
24

play-scalajs-chat

Scala
1
star
25

pistrap-debian

Create a bootable Debian SD card for the RaspberryPi 2.
Shell
1
star
26

tasty-inspector-typerepr

Scala
1
star
27

ustats

A simple and intuitive metrics collection library for Prometheus.
Scala
1
star