From 6a19c5bc6c5d89edcf0afbb036d46828162cd265 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Mon, 17 Feb 2025 22:01:55 +0100 Subject: [PATCH] update README --- README.md | 68 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 03fa62d..8a8fc4c 100644 --- a/README.md +++ b/README.md @@ -7,21 +7,28 @@ In [CCCB](https://berlin.ccc.de/), 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](https://git.berlin.ccc.de/servicepoint/servicepoint). +This crate contains a library for parsing, encoding and sending packets to this display via UDP. +The library itself is written in Rust, but can be used from multiple languages +via [language bindings](#supported-language-bindings). + +This project moved +to [git.berlin.ccc.de/servicepoint/servicepoint](https://git.berlin.ccc.de/servicepoint/servicepoint). The [GitHub repository](https://github.com/cccb/servicepoint) remains available as a mirror. ## Examples ```rust no_run +// everything you need is in the top-level +use servicepoint::*; + fn main() { // establish connection - let connection = servicepoint::Connection::open("172.23.42.29:2342") + let connection = Connection::open("172.23.42.29:2342") .expect("connection failed"); // clear screen content - connection.send(servicepoint::Command::Clear) + connection.send(Command::Clear) .expect("send failed"); } ``` @@ -34,7 +41,9 @@ Execute `cargo run --example` for a list of available examples and `cargo run -- ```bash cargo add servicepoint ``` + or + ```toml [dependencies] servicepoint = "0.13.1" @@ -43,41 +52,42 @@ 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. +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. +Expect breaking changes with every minor version bump. +There should be no breaking changes in patch releases, but there may also be features hiding in those. + +All of this means for you: 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 | +| Name | Default | Description | Dependencies | +|--------------------|---------|----------------------------------------------|-----------------------------------------------------| +| protocol_udp | true | `Connection::Udp` | | +| cp437 | true | Conversion to and from CP-437 | [once_cell](https://crates.io/crates/once_cell) | +| compression_lzma | true | Enable additional compression algo | [rust-lzma](https://crates.io/crates/rust-lzma) | +| compression_zlib | false | Enable additional compression algo | [flate2](https://crates.io/crates/flate2) | +| compression_bzip2 | false | Enable additional compression algo | [bzip2](https://crates.io/crates/bzip2) | +| compression_zstd | false | Enable additional compression algo | [zstd](https://crates.io/crates/zstd) | +| protocol_websocket | false | `Connection::WebSocket` | [tungstenite](https://crates.io/crates/tungstenite) | +| rand | false | `impl Distribution for Standard` | [rand](https://crates.io/crates/rand) | ## Supported language bindings -| Language | Support level | Repo | -|-----------|---------------|---------------------------------------------------------------------------------------------------| -| .NET (C#) | Full | [servicepoint-binding-csharp](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-csharp) | -| C | Full | [servicepoint-binding-c](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-c) | -| Ruby | Working | [servicepoint-binding-ruby](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-ruby) | - -Other languages should work as well using [servicepoint-binding-uniffi](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi): -- Python (tested once) -- Go -- Kotlin -- Swift +| Language | Support level | Repo | +|-----------|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| .NET (C#) | Full | [servicepoint-binding-csharp](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-csharp) contains bindings and a `.csproj` to reference | +| C | Full | [servicepoint-binding-c](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-c) contains a header and a library to link against | +| Ruby | Working | [servicepoint-binding-ruby](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-ruby) contains bindings | +| Python | Unsupported | bindings can be generated from [servicepoint-binding-uniffi](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi), tested once | +| Go | Unsupported | bindings can be generated from [servicepoint-binding-uniffi](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi) | +| Kotlin | Unsupported | bindings can be generated from [servicepoint-binding-uniffi](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi) | +| Swift | Unsupported | bindings can be generated from [servicepoint-binding-uniffi](https://git.berlin.ccc.de/servicepoint/servicepoint-binding-uniffi) | ## Projects using the library @@ -91,7 +101,7 @@ Other languages should work as well using [servicepoint-binding-uniffi](https:// - cellular automata slideshow (rust): [servicepoint-life](https://github.com/kaesaecracker/servicepoint-life) - partial typescript implementation inspired by this library and browser stream: [cccb-servicepoint-browser](https://github.com/SamuelScheit/cccb-servicepoint-browser) -- a CLI: [servicepoint-cli](https://git.berlin.ccc.de/servicepoint/servicepoint-cli) +- a CLI, can also share your screen: [servicepoint-cli](https://git.berlin.ccc.de/servicepoint/servicepoint-cli) To add yourself to the list, open a pull request.