Skip to content
Mathias Funk edited this page Jan 6, 2022 · 7 revisions

The OOCSI ecosystem relies on its clients that connect different platforms and programming languages to the OOCSI networking platform. Historically, OOCSI started as a Java implementation of client and server. That's why the Java, Android and Processing client support is the best and most feature complete till now. Below, you can find links to all client libraries.

Processing

OOCSI is available as a Processing library directly from within the Processing Environment. You can install it by using the Processing library manager; search for "oocsi" and click install, done. The OOCSI for Processing source code is available on GitHub as well.

Java, Android

OOCSI is available on the Java platform since its start. That includes the Android platform and several other languages that base on the JVM platform such as Clojure, Groovy, Scala, Kotlin, JRuby and Jython. For all these, the OOCSI Java client library is available as oocsi-client.jar. The source code is managed in the same GitHub repository as the OOCSI server code. More information on using the Java OOCSI client.

Python & Micropython

To use OOCSI from Python, there is an OOCSI Python package that can installed using pip install oocsi. The package distribution and source code are available from the oocsi-python GitHub repository.

If you would like to use OOCSI with Micropython on an embedded platform, we have a special distribution for that, too: OOCSI for Micropython.

JavaScript (HTML/websocket)

To use OOCSI from websites or mobile webviews, the OOCSI JavaScript library connection can be used. This library connects to an OOCSI server via the websocket protocol and allows for communication with all other OOCSI clients by means of JSON-formatted messages. A short introduction is explains how to use the library and the examples show it in the context of an interactive website.

JavaScript (Node.js)

To use OOCSI from Node.js, the OOCSI JavaScript library connection can be used. Install with npm install oocsi. This library connects to an OOCSI server via the websocket protocol and allows for communication with all other OOCSI clients by means of JSON-formatted messages. This is same to the HTML/websocket connection above.

Arduino-ESP (embedded)

To use OOCSI from an embedded device such as ESP32 or ESP8266, you can use the Arduino IDE and the OOCSI-ESP library.

MQTT bridge

The MQTT bridge is implemented as an example and available from the Processing distribution examples.

Client support overview

Java, Android, Processing JavaScript (Web, Node.js) Python Arduino-ESP (embedded) MQTT bridge
Connecting y y y y y
Sending direct messages y y y y y
Receiving direct messages y y y y y
Sending channel messages y y y y y
Receiving channel messages y y y y y
Call-response messages y y y - -
Nested JSON messages y y y y y
Delayed and retained messages y y y y y
High-level functions
OOCSI variables y y y - -
Constellation y - - - -
Synchronization y - - - -
Negotiation y - - - -