Extensions#
ezmsg uses Python namespace packages to provide a modular ecosystem of extensions. Namespace packages allow multiple independently distributed packages to share a common namespace (ezmsg.*), so you can install only what you need while keeping imports consistent.
For example, installing ezmsg-sigproc makes the ezmsg.sigproc module available:
pip install ezmsg-sigproc
from ezmsg.sigproc.butterworthfilter import ButterworthFilter
Each extension is a separate package with its own dependencies, versioning, and release cycle. This keeps the core ezmsg package lightweight while allowing the ecosystem to grow.
Official Extensions#
These namespace packages are maintained by the ezmsg organization:
Package |
Description |
Docs |
Source |
|---|---|---|---|
Base processor classes and protocols for building message-processing components |
|||
Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using pycbsdk |
|||
Discrete signal events like neural spikes, heartbeats, and triggers |
|||
Machine learning modules for streaming signal processing |
|||
Lab Streaming Layer (LSL) inlet and outlet units |
|||
Load and stream data from Neo-supported file formats (Blackrock, BrainVision, etc.) |
|||
Real-time plotting and dashboards using Panel/HoloViz |
|||
Redis pub/sub units for distributed messaging |
|||
Timeseries signal processing: filtering, spectral analysis, resampling, and more |
|||
Simulated biophysical signals: oscillators, noise generators, synthetic EEG |
|||
Visualization and debugging tools for running ezmsg graphs |
|||
WebSocket server and client units for web integration |
|||
XDF (Extensible Data Format) file reading and writing |
|||
ZeroMQ pub/sub units for distributed messaging |
Community Extensions#
These extensions are maintained by community members:
ezmsg-unicorn – g.tec Unicorn Hybrid Black integration
ezmsg-gadget – USB-gadget with HID control for Raspberry Pi (Zero/W/2W, 4, CM4)
ezmsg-openbci – OpenBCI Cyton serial interface
ezmsg-ssvep – Tools for running SSVEP experiments
ezmsg-vispy – Visualization toolkit using PyQt6 and VisPy
Note
Want to create your own extension? Use the ezmsg-template repository as a starting point.