|
1 | | -List of Extensions |
2 | | -####################### |
| 1 | +Extensions |
| 2 | +########## |
3 | 3 |
|
4 | | -`ezmsg` extensions can be installed individually or all at once. To install all the extension packages in one go, you can use the following command: |
5 | | - |
6 | | -.. code-block:: bash |
7 | | -
|
8 | | - pip install "ezmsg[all_ext]" |
| 4 | +ezmsg uses `Python namespace packages <https://packaging.python.org/en/latest/guides/packaging-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. |
9 | 5 |
|
10 | | -
|
11 | | -This will install all the available public extension packages for `ezmsg` that are listed in `pyproject.toml`. |
12 | | -If you prefer to install a subset of extension packages, you can use the following command: |
| 6 | +For example, installing ``ezmsg-sigproc`` makes the ``ezmsg.sigproc`` module available: |
13 | 7 |
|
14 | 8 | .. code-block:: bash |
15 | 9 |
|
16 | | - pip install "ezmsg[zmq,sigproc,...]" |
17 | | -
|
18 | | -Please note that the `ezmsg` package itself can still be installed without any additional extensions using `pip install ezmsg`. |
19 | | - |
20 | | -Extensions can be managed manually as well. Here are some of the extensions we manage or are aware of: |
21 | | - |
22 | | -- `ezmsg-sigproc <https://github.com/ezmsg-org/ezmsg-sigproc>`_ -- Timeseries signal processing modules |
23 | | -- `ezmsg-learn <https://github.com/ezmsg-org/ezmsg-learn>`_ -- Machine learning modules for streaming signal processing |
24 | | -- `ezmsg-lsl <https://github.com/ezmsg-org/ezmsg-lsl>`_ -- Source unit for LSL Inlet and sink unit for LSL Outlet |
25 | | -- `ezmsg-websocket <https://github.com/ezmsg-org/ezmsg-websocket>`_ -- Websocket server and client nodes for `ezmsg` graphs |
26 | | -- `ezmsg-zmq <https://github.com/ezmsg-org/ezmsg-zmq>`_ -- ZeroMQ pub and sub nodes for `ezmsg` graphs |
27 | | -- `ezmsg-panel <https://github.com/griffinmilsap/ezmsg-panel>`_ -- Plotting tools for `ezmsg` that use `panel <https://github.com/holoviz/panel>`_ |
28 | | -- `ezmsg-blackrock <https://github.com/griffinmilsap/ezmsg-blackrock>`_ -- Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using `pycbsdk` |
29 | | -- `ezmsg-unicorn <https://github.com/griffinmilsap/ezmsg-unicorn>`_ -- g.tec Unicorn Hybrid Black integration for `ezmsg` |
30 | | -- `ezmsg-gadget <https://github.com/griffinmilsap/ezmsg-gadget>`_ -- USB-gadget with HID control integration for Raspberry Pi (Zero/W/2W, 4, CM4) |
31 | | -- `ezmsg-openbci <https://github.com/griffinmilsap/ezmsg-openbci>`_ -- OpenBCI Cyton serial interface for `ezmsg` |
32 | | -- `ezmsg-ssvep <https://github.com/griffinmilsap/ezmsg-ssvep>`_ -- Tools for running SSVEP experiments with `ezmsg` |
33 | | -- `ezmsg-vispy <https://github.com/pperanich/ezmsg-vispy>`_ -- `ezmsg` visualization toolkit using PyQt6 and vispy. |
34 | | - |
35 | | -|ezmsg_logo_small| Extension API References |
36 | | -*********************************************** |
37 | | - |
38 | | -For detailed API documentation, visit the individual package documentation sites: |
39 | | - |
40 | | -Core Extensions |
41 | | -=============== |
42 | | - |
43 | | -* `ezmsg-sigproc <https://www.ezmsg.org/ezmsg-sigproc/>`_ - Timeseries signal processing modules |
44 | | -* `ezmsg-learn <https://www.ezmsg.org/ezmsg-learn/>`_ - Machine learning modules for streaming signal processing |
45 | | - |
46 | | -Data Acquisition & Streaming |
47 | | -============================= |
48 | | - |
49 | | -* `ezmsg-blackrock <https://www.ezmsg.org/ezmsg-blackrock/>`_ - Interface for Blackrock Cerebus ecosystem (incl. Neuroport) |
50 | | -* `ezmsg-lsl <https://www.ezmsg.org/ezmsg-lsl/>`_ - Lab Streaming Layer integration |
51 | | - |
52 | | -Data Formats & Events |
53 | | -====================== |
54 | | - |
55 | | -* `ezmsg-event <https://www.ezmsg.org/ezmsg-event/>`_ - Signal events like neural spikes and heartbeats |
56 | | -* `ezmsg-xdf <https://www.ezmsg.org/ezmsg-xdf/>`_ - XDF (Extensible Data Format) file support |
57 | | - |
58 | | -Communication & Visualization |
59 | | -============================== |
60 | | - |
61 | | -* `ezmsg-zmq <https://www.ezmsg.org/ezmsg-zmq/>`_ - ZeroMQ pub/sub units for distributed messaging |
62 | | -* `ezmsg-tools <https://www.ezmsg.org/ezmsg-tools/>`_ - Tools to visualize running graphs and data |
| 10 | + pip install ezmsg-sigproc |
| 11 | +
|
| 12 | +.. code-block:: python |
| 13 | +
|
| 14 | + from ezmsg.sigproc.butterworthfilter import ButterworthFilter |
| 15 | +
|
| 16 | +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. |
| 17 | + |
| 18 | +|ezmsg_logo_small| Official Extensions |
| 19 | +************************************** |
| 20 | + |
| 21 | +These namespace packages are maintained by the ezmsg organization: |
| 22 | + |
| 23 | +.. list-table:: |
| 24 | + :header-rows: 1 |
| 25 | + :widths: 20 50 15 15 |
| 26 | + |
| 27 | + * - Package |
| 28 | + - Description |
| 29 | + - Docs |
| 30 | + - Source |
| 31 | + * - `ezmsg-baseproc <https://pypi.org/project/ezmsg-baseproc/>`_ |
| 32 | + - Base processor classes and protocols for building message-processing components |
| 33 | + - `docs <https://www.ezmsg.org/ezmsg-baseproc/>`_ |
| 34 | + - `github <https://github.com/ezmsg-org/ezmsg-baseproc>`_ |
| 35 | + * - `ezmsg-blackrock <https://pypi.org/project/ezmsg-blackrock/>`_ |
| 36 | + - Interface for Blackrock Cerebus ecosystem (incl. Neuroport) using pycbsdk |
| 37 | + - `docs <https://www.ezmsg.org/ezmsg-blackrock/>`_ |
| 38 | + - `github <https://github.com/ezmsg-org/ezmsg-blackrock>`_ |
| 39 | + * - `ezmsg-event <https://pypi.org/project/ezmsg-event/>`_ |
| 40 | + - Discrete signal events like neural spikes, heartbeats, and triggers |
| 41 | + - `docs <https://www.ezmsg.org/ezmsg-event/>`_ |
| 42 | + - `github <https://github.com/ezmsg-org/ezmsg-event>`_ |
| 43 | + * - `ezmsg-learn <https://pypi.org/project/ezmsg-learn/>`_ |
| 44 | + - Machine learning modules for streaming signal processing |
| 45 | + - `docs <https://www.ezmsg.org/ezmsg-learn/>`_ |
| 46 | + - `github <https://github.com/ezmsg-org/ezmsg-learn>`_ |
| 47 | + * - `ezmsg-lsl <https://pypi.org/project/ezmsg-lsl/>`_ |
| 48 | + - Lab Streaming Layer (LSL) inlet and outlet units |
| 49 | + - `docs <https://www.ezmsg.org/ezmsg-lsl/>`_ |
| 50 | + - `github <https://github.com/ezmsg-org/ezmsg-lsl>`_ |
| 51 | + * - `ezmsg-neo <https://pypi.org/project/ezmsg-neo/>`_ |
| 52 | + - Load and stream data from Neo-supported file formats (Blackrock, BrainVision, etc.) |
| 53 | + - `docs <https://www.ezmsg.org/ezmsg-neo/>`_ |
| 54 | + - `github <https://github.com/ezmsg-org/ezmsg-neo>`_ |
| 55 | + * - `ezmsg-panel <https://pypi.org/project/ezmsg-panel/>`_ |
| 56 | + - Real-time plotting and dashboards using Panel/HoloViz |
| 57 | + - `docs <https://www.ezmsg.org/ezmsg-panel/>`_ |
| 58 | + - `github <https://github.com/ezmsg-org/ezmsg-panel>`_ |
| 59 | + * - `ezmsg-redis <https://pypi.org/project/ezmsg-redis/>`_ |
| 60 | + - Redis pub/sub units for distributed messaging |
| 61 | + - `docs <https://www.ezmsg.org/ezmsg-redis/>`_ |
| 62 | + - `github <https://github.com/ezmsg-org/ezmsg-redis>`_ |
| 63 | + * - `ezmsg-sigproc <https://pypi.org/project/ezmsg-sigproc/>`_ |
| 64 | + - Timeseries signal processing: filtering, spectral analysis, resampling, and more |
| 65 | + - `docs <https://www.ezmsg.org/ezmsg-sigproc/>`_ |
| 66 | + - `github <https://github.com/ezmsg-org/ezmsg-sigproc>`_ |
| 67 | + * - `ezmsg-simbiophys <https://pypi.org/project/ezmsg-simbiophys/>`_ |
| 68 | + - Simulated biophysical signals: oscillators, noise generators, synthetic EEG |
| 69 | + - `docs <https://www.ezmsg.org/ezmsg-simbiophys/>`_ |
| 70 | + - `github <https://github.com/ezmsg-org/ezmsg-simbiophys>`_ |
| 71 | + * - `ezmsg-tools <https://pypi.org/project/ezmsg-tools/>`_ |
| 72 | + - Visualization and debugging tools for running ezmsg graphs |
| 73 | + - `docs <https://www.ezmsg.org/ezmsg-tools/>`_ |
| 74 | + - `github <https://github.com/ezmsg-org/ezmsg-tools>`_ |
| 75 | + * - `ezmsg-websocket <https://pypi.org/project/ezmsg-websocket/>`_ |
| 76 | + - WebSocket server and client units for web integration |
| 77 | + - `docs <https://www.ezmsg.org/ezmsg-websocket/>`_ |
| 78 | + - `github <https://github.com/ezmsg-org/ezmsg-websocket>`_ |
| 79 | + * - `ezmsg-xdf <https://pypi.org/project/ezmsg-xdf/>`_ |
| 80 | + - XDF (Extensible Data Format) file reading and writing |
| 81 | + - `docs <https://www.ezmsg.org/ezmsg-xdf/>`_ |
| 82 | + - `github <https://github.com/ezmsg-org/ezmsg-xdf>`_ |
| 83 | + * - `ezmsg-zmq <https://pypi.org/project/ezmsg-zmq/>`_ |
| 84 | + - ZeroMQ pub/sub units for distributed messaging |
| 85 | + - `docs <https://www.ezmsg.org/ezmsg-zmq/>`_ |
| 86 | + - `github <https://github.com/ezmsg-org/ezmsg-zmq>`_ |
| 87 | + |
| 88 | +|ezmsg_logo_small| Community Extensions |
| 89 | +*************************************** |
| 90 | + |
| 91 | +These extensions are maintained by community members: |
| 92 | + |
| 93 | +- `ezmsg-unicorn <https://github.com/griffinmilsap/ezmsg-unicorn>`_ -- g.tec Unicorn Hybrid Black integration |
| 94 | +- `ezmsg-gadget <https://github.com/griffinmilsap/ezmsg-gadget>`_ -- USB-gadget with HID control for Raspberry Pi (Zero/W/2W, 4, CM4) |
| 95 | +- `ezmsg-openbci <https://github.com/griffinmilsap/ezmsg-openbci>`_ -- OpenBCI Cyton serial interface |
| 96 | +- `ezmsg-ssvep <https://github.com/griffinmilsap/ezmsg-ssvep>`_ -- Tools for running SSVEP experiments |
| 97 | +- `ezmsg-vispy <https://github.com/pperanich/ezmsg-vispy>`_ -- Visualization toolkit using PyQt6 and VisPy |
63 | 98 |
|
64 | 99 | .. note:: |
65 | | - Additional extensions are being documented and their API references will be added here as they become available. |
| 100 | + Want to create your own extension? Use the `ezmsg-template <https://github.com/ezmsg-org/ezmsg-template>`_ repository as a starting point. |
66 | 101 |
|
67 | 102 | .. |ezmsg_logo_small| image:: ../_static/_images/ezmsg_logo.png |
68 | 103 | :width: 40 |
|
0 commit comments