OOCSI clients

The power of the OOCSI system comes from the clients that we have built over the years. Some client exist as libraries that can be installed directly from the programming environment, some other clients can be downloaded. All clients distributions contain examples that show how to get started and communicate data over the OOCSI network.

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.

Prototyping Tip (Unique Client Handles): When choosing a client name, add hash characters at the end (e.g. sensor_node_#### or web_ui_####). The OOCSI server automatically replaces hashes with random digits upon connection. This guarantees that your client receives a unique handle and prevents connection rejection caused by recent reboots or duplicate sessions.

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. Read our Java and Processing client guide.

Java & Android

OOCSI is available on the Java platform since its start. That includes the Android platform and several other languages that run 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 OOCSI server repository. Read our dedicated Java client guide.

Embedded Platforms (ESP32, ESP8266, Arduino)

To use OOCSI from microcontrollers and physical computing boards such as the ESP32, ESP8266, Arduino Nano 33 IoT, or Arduino UNO WiFi Rev2, use the OOCSI-ESP library. It can be installed directly from the Arduino Library Manager or via PlatformIO. Read our dedicated Embedded & Arduino client guide.

Python & MicroPython

To use OOCSI from Python, install the official package via pip install oocsi. The source code is hosted on GitHub: iddi/oocsi-python. Read our dedicated Python client guide.

If you want to use OOCSI with MicroPython on embedded boards, check out OOCSI for MicroPython.

JavaScript (Web Browsers & Node.js)

To connect from websites, dashboards, mobile webviews, or Node.js background services, use the OOCSI JavaScript library over WebSockets. In browsers, include oocsi-web.min.js; in Node.js, install with npm install oocsi. Read our dedicated JavaScript client guide.

HTTP API: Using OOCSI from web browser or command line

Sometimes you want things to be really simple, and using OOCSI from the web browser or command line via REST and Server-Sent Events (SSE) is taking this principle to the max. Read our dedicated HTTP client guide.

MQTT bridge

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

Client support overview

 Java, Android, ProcessingJavaScript (Web, Node.js)Python/MicroPythonArduino/ESP (embedded)MQTT bridge
Connectingyyyyy
Sending direct messagesyyyyy
Receiving direct messagesyyyyy
Sending channel messagesyyyyy
Receiving channel messagesyyyyy
Call-response messagesyyy--
Nested JSON messagesyyyyy
Delayed and retained messagesyyyyy
High-level functions     
OOCSI variablesyyy--
Constellationy----
Synchronizationy----
Negotiationy----

Table of contents


Copyright © 2013-2026 Mathias Funk.

This site uses Just the Docs, a documentation theme for Jekyll.