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: .. code-block:: bash pip install ezmsg-sigproc .. code-block:: python 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. |ezmsg_logo_small| Official Extensions ************************************** These namespace packages are maintained by the ezmsg organization: .. list-table:: :header-rows: 1 :widths: 20 50 15 15 * - Package - Description - Docs - Source * - `ezmsg-baseproc `_ - Base processor classes and protocols for building message-processing components - `docs `__ - `github `__ * - `ezmsg-blackrock `_ - Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using pycbsdk - `docs `__ - `github `__ * - `ezmsg-dashboard `_ - Web dashboard for inspecting and operating running ezmsg systems - `docs `__ - `github `__ * - `ezmsg-event `_ - Discrete signal events like neural spikes, heartbeats, and triggers - `docs `__ - `github `__ * - `ezmsg-kinematics `_ - Units and utilities for streaming kinematics - `docs `__ - `github `__ * - `ezmsg-learn `_ - Machine learning modules for streaming signal processing - `docs `__ - `github `__ * - `ezmsg-lsl `_ - Lab Streaming Layer (LSL) inlet and outlet units - `docs `__ - `github `__ * - `ezmsg-neo `_ - Load and stream data from Neo-supported file formats (Blackrock, BrainVision, etc.) - `docs `__ - `github `__ * - `ezmsg-nwb `_ - NWB (Neurodata Without Borders) file reading and writing - `docs `__ - `github `__ * - `ezmsg-panel `_ - Real-time plotting and dashboards using Panel/HoloViz - `docs `__ - `github `__ * - `ezmsg-qt `_ - Qt integration: publish/subscribe to ezmsg topics from Qt widgets - `docs `__ - `github `__ * - `ezmsg-redis `_ - Redis pub/sub units for distributed messaging - `docs `__ - `github `__ * - `ezmsg-sigproc `_ - Timeseries signal processing: filtering, spectral analysis, resampling, and more - `docs `__ - `github `__ * - `ezmsg-simbiophys `_ - Simulated biophysical signals: oscillators, noise generators, synthetic EEG - `docs `__ - `github `__ * - `ezmsg-tools `_ - Visualization and debugging tools for running ezmsg graphs - `docs `__ - `github `__ * - `ezmsg-websocket `_ - WebSocket server and client units for web integration - `docs `__ - `github `__ * - `ezmsg-xdf `_ - XDF (Extensible Data Format) file reading and writing - `docs `__ - `github `__ * - `ezmsg-zmq `_ - ZeroMQ pub/sub units for distributed messaging - `docs `__ - `github `__ |ezmsg_logo_small| 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. .. |ezmsg_logo_small| image:: ../_static/_images/ezmsg_logo.png :width: 40 :alt: ezmsg logo