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++

liblsl

The library itself: lsl_c.h and the header-only lsl_cpp.h.

Python

pylsl

pip install pylsl; ctypes wrapper around liblsl.

MATLAB

liblsl-Matlab

MEX wrappers.

C#

liblsl-Csharp

A single file (LSL.cs) using P/Invoke; you provide lsl.dll.

Unity

LSL4Unity

Unity package with the C# binding and the native plugin.

Unreal Engine

plugin-UE4

Also on the Unreal Marketplace.

Java

liblsl-Java

JNA wrapper; also used on Android.

Rust

liblsl-rust

crates lsl / lsl-sys (last published 2020).

Android

liblsl-Android

Older Android Studio build of liblsl and the Java binding (2020). For new apps, build liblsl from your app’s CMakeLists.txt (see Building liblsl).

Other (SWIG)

liblsl-Generic

SWIG interface files for generating further bindings (2018).

Community

Language

Project

Notes

Python

MNE-LSL

pip install mne-lsl; has its own low-level binding (mne_lsl.lsl) plus real-time tools for MNE-Python.

C#

SharpLSL

NuGet SharpLSL; cross-platform. (2026)

C# (Bonsai)

emotional-cities/lsl

NuGet EmotionalCities.Lsl. (2023)

C# (vvvv)

LSL4VVVV

For vvvv gamma. (2022)

C#

Diademics LibLSL

Dart / Flutter

liblsl.dart

pub.dev liblsl; full C API via FFI, builds liblsl from source. (2026)

Dart / Flutter

Bridging-Labs

pub.dev lsl_bindings / lsl_flutter. (2025)

JavaScript (Capacitor, Cordova)

capacitor-lsl, cordova-plugin-lsl

Outlets only, for Android and iOS apps. (2026)

Node.js

node-labstreaminglayer

npm node-labstreaminglayer. (2025)

Node.js

@neurodevs/node-lsl

Outlets only. (2026)

Node.js

lsl.js, node-lsl

Older; partial API. (2023, 2019)

Julia

LSL.jl

Julia package LSL; liblsl from liblsl_jll. (2026)

LabVIEW

liblsl-LabVIEW

Pure Data

PdLSL

Inlet and outlet externals. (2019)

openFrameworks

ofxLSL

Incomplete. (2022)

Swift

LabStreamingLayer

Minimal wrapper. (2020)

Odin

lslodin

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.

  • Rust: labstream (exports liblsl’s C API), rlsl (C API, Python bindings and a WebSocket bridge)

  • Swift: SwiftLSL (receiving only)