servicepoint/README.md
Vinzenz Schroeter 04aa4aa95a
All checks were successful
Rust / build (pull_request) Successful in 2m22s
split language bindings into separate repositories
2025-02-16 17:36:08 +01:00

5 KiB

servicepoint

crates.io Crates.io Total Downloads docs.rs GPLv3 licensed

In CCCB, there is a big pixel matrix hanging on the wall. It is called "Service Point Display" or "Airport Display". This crate contains a library for parsing, encoding and sending packets to this display via UDP.

This project moved to git.berlin.ccc.de/servicepoint/servicepoint. The GitHub repository remains available as a mirror.

Examples

fn main() {
    // establish connection
    let connection = servicepoint::Connection::open("172.23.42.29:2342")
        .expect("connection failed");

    // clear screen content
    connection.send(servicepoint::Command::Clear)
        .expect("send failed");
}

More examples are available in the crate. Execute cargo run --example for a list of available examples and cargo run --example <name> to run one.

Installation

cargo add servicepoint

or

[dependencies]
servicepoint = "0.13.1"

Note on stability

This library can be used for creative project or just to play around with the display. A decent coverage by unit tests prevents major problems and I also test this with my own projects, which mostly use up-to-date versions.

That being said, the API is still being worked on. Expect minor breaking changes with every version bump. Please specify the full version including patch in your Cargo.toml until 1.0 is released.

Features

This library has multiple optional dependencies. You can choose to (not) include them by toggling the related features.

Name Default Description
compression_zlib false Enable additional compression algo
compression_bzip2 false Enable additional compression algo
compression_lzma true Enable additional compression algo
compression_zstd false Enable additional compression algo
protocol_udp true Connection::Udp
protocol_websocket false Connection::WebSocket
rand false impl Distribution for Standard
cp437 true Conversion to and from CP-437

Supported language bindings

Language Support level Repo
.NET (C#) Full servicepoint-binding-csharp
C Full servicepoint-binding-c
Ruby Working servicepoint-binding-ruby

Other languages should work as well using servicepoint-binding-uniffi:

  • Python (tested once)
  • Go
  • Kotlin
  • Swift

Projects using the library

To add yourself to the list, open a pull request.

You can also check out awesome-servicepoint for a bigger collection of projects, including some not related to this library.

If you have access, there is even more software linked in the wiki.

Contributing

See CONTRIBUTING.md.

What happened to servicepoint2?

After servicepoint2 has been merged into servicepoint, servicepoint2 will not continue to get any updates.