Liblsl.dart: A Dart native API for Lab Streaming Layer (LSL)

Liblsl.dart: A Dart native API for Lab Streaming Layer (LSL) - Published in JOSS (2026)

https://github.com/nexusdynamic/liblsl.dart

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 11 days ago · JSON representation ·

Repository

Dart interface for Lab Streaming Layer / liblsl

Basic Info
  • Host: GitHub
  • Owner: NexusDynamic
  • License: mit
  • Language: Dart
  • Default Branch: main
  • Size: 157 MB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 4
  • Open Issues: 9
  • Releases: 3
Created over 1 year ago · Last pushed 22 days ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Security Support Codemeta Zenodo

README.md

Liblsl.dart

melos CI Test

This is the monorepo for the dart native liblsl package.

Subpackages:

  • liblsl: The main package for liblsl. Pub Publisher Pub Version status DOI

  • liblsl_test: An integration test so you can try out liblsl with flutter on any supported target platform.

  • liblsl_timing: App based multi-device latency, sync and interactive timing tests with automatic device coordination via LSL

  • liblsl_analysis: Analysis of results from the timing tests in liblsl_timing

Getting Started

You're most likely interested in the liblsl package, which is the main package for liblsl.dart. You can find installation instructions and usage examples in the README of that package. API documentation, and the Dart package are available on pub.dev: https://pub.dev/packages/liblsl.

Working with the monorepo

This is a monorepo managed with melos and fvm. To get started, clone this repository including submodules:

bash git clone --recurse-submodules

Install fvm, then run:

bash cd liblsl.dart fvm dart pub get

There are some helpful melos commands for working with the monorepo:

  • fvm exec melos run <script>: run a script defined in the melos scripts section of the root pubspec.yaml across all packages. For example, melos run format runs dart format . in all packages.
  • fvm exec melos run lint:all: run dart analyze and dart format for all packages, and fail if there are any warnings or formatting issues.
  • fvm exec melos run test: run dart test for all packages.

The lint and test scripts at the very least should be run before pushing any changes. For more scripts available, see the pubspec.yaml file.

Contributing

See the CONTRIBUTING.md file for guidelines on how to contribute to this project.

Code of Conduct

This project and everyone participating in it must uphold Code of Conduct. By participating, you are expected to uphold this code.

Support

Please see the SUPPORT.md file for information on how to get support for liblsl.dart and where to ask questions or discuss potential features.

Matrix chat room

Security

Please see the SECURITY.md file for information on how to report security vulnerabilities for liblsl.dart.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Owner

  • Name: NexusDynamic
  • Login: NexusDynamic
  • Kind: organization
  • Location: Denmark

A group-focused social dynamics research platform, designed for scalable, flexible, multimodal, cross-platform experiments and data collection.

JOSS Publication

Liblsl.dart: A Dart native API for Lab Streaming Layer (LSL)
Published
June 02, 2026
Volume 11, Issue 122, Page 10425
Authors
Luke Ring ORCID
School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark
Anna Zamm ORCID
School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark
Chris Mathys ORCID
School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark
Simon Kappel ORCID
Department of Electrical and Computer Engineering - Biomedical Engineering, Aarhus University, Denmark
Editor
Jonny Saunders ORCID
Tags
Lab Streaming Layer Data streaming Cross-platform Multimodal

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: "liblsl.dart: A Dart native API for Lab Streaming Layer (LSL)"
version: "0.13.2"
date-released: "2026-05-22"
license: MIT
repository-code: "https://github.com/NexusDynamic/liblsl.dart"
url: "https://pub.dev/packages/liblsl"
doi: "10.5281/zenodo.20340248"
keywords:
  - Lab Streaming Layer
  - Dart
  - Flutter
  - Data streaming
  - Cross-platform
  - Multimodal
authors:
  - family-names: Ring
    given-names: Luke Daniel
    orcid: "https://orcid.org/0009-0000-0930-4172"
    affiliation: "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
    email: dev@zeyus.com
  - family-names: Zamm
    given-names: Anna
    orcid: "https://orcid.org/0000-0002-3774-3516"
    affiliation: "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
  - family-names: Mathys
    given-names: Chris
    orcid: "https://orcid.org/0000-0003-4079-5453"
    affiliation: "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
  - family-names: Kappel
    given-names: Simon Lind
    orcid: "https://orcid.org/0000-0003-0583-2255"
    affiliation: "Department of Electrical and Computer Engineering - Biomedical Engineering, Aarhus University, Denmark"
preferred-citation:
  type: article
  title: "Liblsl.dart: A Dart native API for Lab Streaming Layer (LSL)"
  journal: "Journal of Open Source Software"
  year: 2026
  # doi: "10.21105/joss.XXXXX"
  authors:
    - family-names: Ring
      given-names: Luke Daniel
      orcid: "https://orcid.org/0009-0000-0930-4172"
    - family-names: Zamm
      given-names: Anna
      orcid: "https://orcid.org/0000-0002-3774-3516"
    - family-names: Mathys
      given-names: Chris
      orcid: "https://orcid.org/0000-0003-4079-5453"
    - family-names: Kappel
      given-names: Simon Lind
      orcid: "https://orcid.org/0000-0003-0583-2255"

CodeMeta (codemeta.json)

{
  "@context": "https://w3id.org/codemeta/3.0",
  "type": "SoftwareSourceCode",
  "applicationCategory": "Research",
  "author": [
    {
      "id": "http://orcid.org/0009-0000-0930-4172",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
      },
      "email": "dev@zeyus.com",
      "familyName": "Ring",
      "givenName": "Luke Daniel"
    },
    {
      "id": "http://orcid.org/0000-0002-3774-3516",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
      },
      "familyName": "Zamm",
      "givenName": "Anna"
    },
    {
      "id": "http://orcid.org/0000-0003-4079-5453",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
      },
      "familyName": "Mathys",
      "givenName": "Chris"
    },
    {
      "id": "http://orcid.org/0000-0003-0583-2255",
      "type": "Person",
      "affiliation": {
        "type": "Organization",
        "name": "Department of Electrical and Computer Engineering - Biomedical Engineering, Aarhus University, Denmark"
      },
      "familyName": "Kappel",
      "givenName": "Simon Lind"
    }
  ],
  "codeRepository": "https://github.com/NexusDynamic/liblsl.dart/tree/main/packages/liblsl",
  "contributor": {
    "id": "http://orcid.org/0009-0000-0930-4172",
    "type": "Person",
    "affiliation": {
      "type": "Organization",
      "name": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
    },
    "email": "dev@zeyus.com",
    "familyName": "Ring",
    "givenName": "Luke Daniel"
  },
  "dateCreated": "2025-03-01",
  "dateModified": "2026-05-22",
  "datePublished": "2025-03-12",
  "description": "A Dart (and Flutter) native library for working with Lab Streaming Layer (LSL / liblsl).",
  "downloadUrl": "https://pub.dev/api/archives/liblsl-0.13.0.tar.gz",
  "identifier": [
    {
      "type": "PropertyValue",
      "propertyID": "doi",
      "value": "10.5281/zenodo.20340248"
    }
  ],
  "isPartOf": "https://github.com/NexusDynamic/liblsl.dart",
  "keywords": [
    "Lab Streaming Layer",
    "Dart",
    "Flutter",
    "Data streaming",
    "Cross-platform",
    "Multimodal"
  ],
  "license": "https://spdx.org/licenses/MIT",
  "name": "liblsl",
  "operatingSystem": [
    "Android",
    "iOS",
    "Linux",
    "MacOS",
    "Windows"
  ],
  "programmingLanguage": [
    "Dart",
    "Flutter"
  ],
  "relatedLink": [
    "https://nexusdynamic.org/",
    "https://zeyus.com/",
    "https://pub.dev/packages/liblsl"
  ],
  "softwareRequirements": [
    "https://dart.dev/get-dart",
    "https://pub.dev/packages/native_toolchain_c",
    "https://pub.dev/packages/hooks",
    "https://pub.dev/packages/ffi",
    "https://pub.dev/packages/code_assets",
    "https://pub.dev/packages/logging",
    "https://pub.dev/packages/meta"
  ],
  "version": "0.13.2",
  "continuousIntegration": "https://github.com/NexusDynamic/liblsl.dart/actions/workflows/test.yml",
  "developmentStatus": "active",
  "issueTracker": "https://github.com/NexusDynamic/liblsl.dart/issues"
}

Zenodo (.zenodo.json)

{
  "upload_type": "software",
  "title": "liblsl.dart: A Dart native API for Lab Streaming Layer (LSL)",
  "description": "A Dart (and Flutter) native library for working with Lab Streaming Layer (LSL / liblsl). Provides cross-platform bindings (Android, iOS, Linux, macOS, Windows) to the liblsl C library, enabling real-time streaming of time-series data from mobile and embedded devices.",
  "version": "0.13.2",
  "license": "MIT",
  "keywords": [
    "Lab Streaming Layer",
    "Dart",
    "Flutter",
    "Data streaming",
    "Cross-platform",
    "Multimodal"
  ],
  "creators": [
    {
      "name": "Ring, Luke Daniel",
      "orcid": "0009-0000-0930-4172",
      "affiliation": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
    },
    {
      "name": "Zamm, Anna",
      "orcid": "0000-0002-3774-3516",
      "affiliation": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
    },
    {
      "name": "Mathys, Chris",
      "orcid": "0000-0003-4079-5453",
      "affiliation": "School of Communication and Culture, Department of Linguistics, Cognitive Science and Semiotics, Aarhus University, Denmark"
    },
    {
      "name": "Kappel, Simon Lind",
      "orcid": "0000-0003-0583-2255",
      "affiliation": "Department of Electrical and Computer Engineering - Biomedical Engineering, Aarhus University, Denmark"
    }
  ],
  "related_identifiers": [
    {
      "identifier": "https://github.com/NexusDynamic/liblsl.dart",
      "relation": "isSupplementTo",
      "scheme": "url"
    },
    {
      "identifier": "https://pub.dev/packages/liblsl",
      "relation": "isDocumentedBy",
      "scheme": "url"
    }
  ],
  "communities": [
    {
      "identifier": "joss"
    }
  ]
}

GitHub Events

Total
  • Delete event: 1
  • Pull request event: 2
  • Discussion event: 1
  • Issues event: 5
  • Watch event: 1
  • Issue comment event: 7
  • Push event: 78
  • Create event: 7
Last Year
  • Delete event: 1
  • Pull request event: 2
  • Discussion event: 1
  • Issues event: 5
  • Watch event: 1
  • Issue comment event: 7
  • Push event: 78
  • Create event: 7

Committers

Last synced: 2 months ago

All Time
  • Total Commits: 308
  • Total Committers: 1
  • Avg Commits per committer: 308.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 234
  • Committers: 1
  • Avg Commits per committer: 234.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
zeyus d****v@z****m 308
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 month ago

All Time
  • Total issues: 5
  • Total pull requests: 3
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 2.6
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 3
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 2.6
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • zeyus (4)
  • choiks14 (1)
Pull Request Authors
  • zeyus (3)
Top Labels
Issue Labels
liblsl (3) enhancement (3) question (1) bug (1) liblsl_analysis (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 21
pub.dev: liblsl

A Dart (and Flutter) native library for working with Lab Streaming Layer (LSL / liblsl).

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 17.8%
Forks count: 27.7%
Average: 31.3%
Stargazers count: 38.6%
Dependent repos count: 40.9%
Last synced: 22 days ago

Dependencies

pubspec.yaml pub
  • ffigen ^17.0.0 development
  • lints ^5.0.0 development
  • test ^1.24.0 development
  • ffi ^2.1.3
packages/liblsl_test/ios/Podfile cocoapods
packages/liblsl_test/ios/Podfile.lock cocoapods
  • Flutter 1.0.0
  • integration_test 0.0.1
packages/liblsl_test/macos/Podfile cocoapods
packages/liblsl_test/macos/Podfile.lock cocoapods
  • FlutterMacOS 1.0.0
packages/liblsl_test/android/app/build.gradle.kts maven
packages/liblsl_test/android/build.gradle.kts maven
packages/liblsl/pubspec.yaml pub
  • ffigen ^18.0.0 development
  • lints ^5.0.0 development
  • test ^1.24.0 development
  • ffi ^2.1.3
  • logging ^1.3.0
  • native_assets_cli ^0.11.0
  • native_toolchain_c ^0.8.0
packages/liblsl_test/pubspec.yaml pub
  • flutter_lints ^5.0.0 development
  • flutter_test {"sdk" => "flutter"} development
  • integration_test {"sdk" => "flutter"} development
  • cupertino_icons ^1.0.8
  • flutter {"sdk" => "flutter"}
  • liblsl {"path" => "../liblsl"}