Skip to main content
Skip table of contents

Pre-installed Packages

These packages are available on the Barionet operating system out of the box. They are already present and can be imported or used directly.


Python 3 (v3.8.11) — Standard Library + Pre-installed Packages

Python apps can import any of these without installation:

Networking & HTTP

Package

Version

Notes

requests

2.23.0

HTTP client

urllib3

1.25.7

Low-level HTTP

paho-mqtt

1.5.0

MQTT client (use instead of raw mosquitto)

flask

1.1.1

Lightweight web server / REST API

gunicorn

20.0.4

WSGI server for Flask

werkzeug

1.0.1

WSGI utilities (Flask dependency)

zeroconf

1.0

mDNS / service discovery

ifaddr

0.1.7

List network interfaces

pysocks

1.7.1

SOCKS proxy support

ndg-httpsclient

0.5.1

HTTPS via PyOpenSSL

Security & Cryptography

Package

Version

Notes

cryptography

2.8

TLS, encryption primitives

pyopenssl

19.1.0

OpenSSL bindings

certifi

2019.11.28

CA bundle

asn1crypto

1.3.0

ASN.1 parsing

pyasn1

0.4.8

ASN.1 types

Protocols & Automation

Package

Version

Notes

pymodbus

3.6.7

Modbus TCP/RTU client & server

pyserial

3.4

Serial port (RS-232/RS-485)

bacpypes

0.18.8

BACnet protocol

python-vlc

3.0.7110

Audio/video playback via libVLC

pyalsaaudio

0.10.0

ALSA audio (direct sound card access)

pjsua

1.0

SIP/VoIP client via PJSIP (make/receive calls, audio)

Data & Serialization

Package

Version

Notes

simplejson

3.17.0

Fast JSON (use alongside stdlib json)

jsonschema

3.2.0

JSON schema validation

jsonpointer

2.0

JSON Pointer (RFC 6901)

iso8601

0.1.12

ISO 8601 date parsing

m3u8

3.6.0

M3U8 playlist parsing

System & Process

Package

Version

Notes

psutil

5.7.0

CPU, memory, process info

concurrent-log-handler

0.9.24

Multi-process safe logging

portalocker

2.8.2

File locking

click

7.0

CLI argument parsing

six

1.14.0

Python 2/3 compat

smbus

4.1

I2C / SMBus access

Web / Templating

Package

Version

Notes

jinja2

2.11.3

Templating engine

markupsafe

1.1.1

Safe HTML escaping

itsdangerous

1.1.0

Signed tokens

SNMP

Package

Version

Notes

snmp-passpersist

2.0.0

SNMP pass-persist subagent

UCI (OpenWrt config)

Package

Version

Notes

python3-uci

0.6

Read/write UCI config files (OpenWrt)

Text & Encoding

Package

Version

Notes

chardet

3.0.4

Character encoding auto-detection (useful for serial/text data)

idna

2.8

Internationalized domain names

webcolors

1.8.1

CSS color name ↔ hex/RGB conversion

strict-rfc3339

0.7

Strict RFC 3339 date/time validation

rfc3987

1.3.8

URI/IRI validation per RFC 3987

Native Interop

Package

Version

Notes

cffi

1.14.0

Call C libraries from Python

pycparser

2.20

C source parser (cffi dependency)

Data Structures

Package

Version

Notes

attrs

19.3.0

Declarative Python classes

pyrsistent

0.15.7

Immutable/persistent data structures

ply

3.11

Lexer & parser toolkit (useful for custom protocol parsing)


Lua (v5.3.6 and 5.1.5)

Both Lua 5.3 and Lua 5.1 are available. The following libraries are pre-installed:

Library

Notes

cjson

JSON encode/decode

mosquitto

MQTT client

openssl

TLS / crypto

socket (luasocket)

TCP/UDP networking

sec (luasec)

TLS over luasocket

expat (luaexpat)

XML parsing

soap (luasoap)

SOAP/XML web services

uci

OpenWrt UCI config

curl (lua-curl)

HTTP via libcurl

luvit

Async I/O (libuv bindings)


System-level Tools & Daemons

Available as shell commands or via subprocess:

Tool

Notes

mosquitto

MQTT broker (v1.6.10) — can run a local broker or use as client

curl

HTTP/HTTPS requests from shell

jq

JSON processing in shell scripts

ffmpeg

Audio/video transcoding (v4.2.2)

icecast

Audio streaming server (v2.4.4)

mpg123

MP3 playback

avahi

mDNS/DNS-SD daemon

net-snmp

SNMP agent

ntp

Time sync

lighttpd

HTTP server (v1.4.55)

haserl

CGI scripting for lighttpd (embed scripts in HTML)

bash

Full Bash 5.0 (not just busybox sh)

openssl

CLI for certs, hashing

python3

Python 3.8.11 interpreter

lua

Lua 5.3.6 interpreter

lua5.1

Lua 5.1.5 interpreter

sqlite3

Embedded SQL database

screen

Terminal multiplexer

cronie

Cron daemon — available for scheduled/recurring tasks

netcat

Raw TCP/UDP testing

ethtool

Network interface diagnostics

minicom

Serial terminal (debugging)

i2c-tools

I2C bus utilities (i2cdetect, i2cget, i2cset)

dfu-util

USB Device Firmware Upgrade utility

openjre-8

Java 8 runtime (v272)

dropbear

SSH server — present on device (users cannot SSH in by default)


C / Native Libraries (for compiled extensions or subprocess use)

Library

Notes

libwebsockets 4.0.1

WebSocket support

libsrt 1.0

Secure Reliable Transport

librist 1.0

RIST streaming protocol

libsndfile 1.0.28

Audio file I/O

libsamplerate 0.1.9

Audio resampling

libgpiod 1.4.3

GPIO line access

libuv 1.36.0

Async I/O event loop

poco 1.11.2

C++ networking/utility framework

pjproject 2.15.1

SIP/VoIP (PJSIP)


Key Practical Notes for App Development

  1. MQTT: Prefer paho-mqtt (Python) or lua-mosquitto (Lua) over shelling out to mosquitto_pub/sub.

  2. Modbus: pymodbus 3.6.7 is available — no need to implement raw TCP framing.

  3. Serial/RS-485: Use pyserial for serial comms.

  4. Audio: pyalsaaudio for direct ALSA access; python-vlc for higher-level playback; ffmpeg via subprocess for transcoding.

  5. Web API: flask + gunicorn can expose a REST API from within an app.

  6. SQLite: sqlite3 is in both the Python stdlib and as a system binary — safe for local persistent storage.

  7. I2C: Use python3-smbus for I2C bus access (in addition to i2c-tools CLI).

  8. Scheduled tasks: cronie is available — use it for recurring jobs instead of implementing sleep loops where a cron schedule is more appropriate.

  9. Java: openjre-8 is present if a task requires running a .jar file via subprocess.

  10. CGI / lighttpd: haserl enables CGI scripts embedded in HTML served by lighttpd — an alternative to Flask for very lightweight web UIs.

  11. No pip: There is no pip/package manager available to end users. Only the packages listed here are available.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.