NOTE: keelson is in the early phases of development and will undergo significant changes before reaching v1.0. Be aware!
keelson is an API specification tailored to digital maritime systems for building distributed applications on top of the communication protocol zenoh. It is provided as free and open-source software under the Apache 2.0 License.
The keelson protocol is described HERE.
TODO: A nice graphic here would be nice...
Repository structure
This repository is a mono-repo. It contains the following:
- A description of the keelson protocol
- The well-known message schemas supported by keelson: (messages/)
- Generic RPC interface definitions for some use cases: (interfaces/)
- Connector implementations towards a multitude of sensors, middlewares and file formats: (connectors/)
- Software Development Kits (SDKs) for several languages (sdks)
- A zenoh-cli codec plugin for keelson data. Bundled with the python SDK.
Releases from this repository consists of two artifacts:
- The SDKs are published to the respective language specific package repositories, see sdks for details.
- A docker image containing all the connectors is published to Githubs container registry
keelson
is but a small set of rules on top of zenoh. Make sure to first be aquainted with zenoh and then ensure your application adheres to the key-space design and message format advocated and supported by keelson
, either through the useage of one of the available SDKs or just by compliance.
See details of the SDKs for usage examples in the respective languages.
There is a devcontainer setup for the repository which is suitable for the whole monorepo. Use it!
Make sure to do the following:
- Update version numbers in the respective SDKs
- Make a new release on Github with name according to version number
Work-In-Progress
Extensions to keelson
can be of three different types:
- additional well-known subjects/payloads/messages, i.e. a
message
extension - additional generic RPC interfaces, i.e. a
interface
extension - additional connector implementations, i.e. a
connector
extension
For convenience, extensions should add a Github topic keelson-<extension_type>
to its repository to be visible in #keelson-message, #keelson-interface and #keelson-connector respectively.