Developer’s Guide

LabStreamingLayer (LSL) is a library (liblsl) and a suite of apps and tools.

Even for developers, it’s possible to build applications for LSL or build liblsl for an entirely new device without ever having to look at the liblsl source code. The guides are therefore split into an app developer’s guide and a liblsl developer’s guide.

The labstreaminglayer source code is similarly split into Apps and LSL (core library and language interfaces), each of which comprises several submodules. One could work with the repository, submodules and all, as a Working With The LabStreamingLayer Repository, but this is not recommended. Most developers will be better working on individual apps or individual language interfaces.

App Development

This guide is for you if you are:

  • adding LSL support for a device to send its data to other applications;
  • writing an application that receives data (e.g., to process and possibly resend on a new stream);
  • trying to build an existing application that does not already have a release for your platform.

The distribution includes a range of code examples in C, C++, Python, MATLAB, Java, and C# including some very simple sender and receiver programs, as well as some fairly extensive demo apps to help you get started.

See LSL Coding Examples for a broader overview of example programs and general programming tips and tricks. Also make sure to glance over the FAQs.

Library Development

The guide is for you if you are: