Language Bindings
liblsl is a C library with a C++ wrapper (both documented in the liblsl documentation). Other languages use it through bindings. The official bindings are maintained under the labstreaminglayer GitHub organization. Community bindings are maintained by others; they are listed here because we know of them, not as an endorsement, and their completeness and upkeep vary (the year of the last change is given as a hint). To add one, edit this page and open a pull request.
Official
Language |
Project |
Notes |
|---|---|---|
C / C++ |
The library itself: |
|
Python |
|
|
MATLAB |
MEX wrappers. |
|
C# |
A single file ( |
|
Unity |
Unity package with the C# binding and the native plugin. |
|
Unreal Engine |
Also on the Unreal Marketplace. |
|
Java |
JNA wrapper; also used on Android. |
|
Rust |
crates |
|
Android |
Older Android Studio build of liblsl and the Java binding (2020). For new apps, build liblsl
from your app’s |
|
Other (SWIG) |
SWIG interface files for generating further bindings (2018). |
Community
Language |
Project |
Notes |
|---|---|---|
Python |
|
|
C# |
NuGet |
|
C# (Bonsai) |
NuGet |
|
C# (vvvv) |
For vvvv gamma. (2022) |
|
C# |
||
Dart / Flutter |
pub.dev liblsl; full C API via FFI, builds liblsl from source. (2026) |
|
Dart / Flutter |
pub.dev |
|
JavaScript (Capacitor, Cordova) |
Outlets only, for Android and iOS apps. (2026) |
|
Node.js |
npm |
|
Node.js |
Outlets only. (2026) |
|
Node.js |
Older; partial API. (2023, 2019) |
|
Julia |
Julia package |
|
LabVIEW |
||
Pure Data |
Inlet and outlet externals. (2019) |
|
openFrameworks |
Incomplete. (2022) |
|
Swift |
Minimal wrapper. (2020) |
|
Odin |
Experimental, macOS. (2026) |
Reimplementations
These implement the LSL protocol themselves instead of using liblsl. They may differ from liblsl in behavior and compatibility; check how they are tested before relying on them.