Skip to content

feat: peripheral SDK#176

Merged
calvinleng-science merged 3 commits into
mainfrom
calvin/peripheral-sdk
May 20, 2026
Merged

feat: peripheral SDK#176
calvinleng-science merged 3 commits into
mainfrom
calvin/peripheral-sdk

Conversation

@calvinleng-science
Copy link
Copy Markdown
Contributor

Summary

Adds commands synapsectl peripherals build and synapsectl peripherals deploy to support SciFi's peripheral plugin SDK, which allows users to write and register their own custom layer that sits on top our existing USB layer to interface with their custom probes.

synapsectl peripherals build . — cross-compiles a plugin .so against
scifi-peripheral-sdk inside the example repo's Dockerfile, then
packages it (plus the bundled libscifi-peripheral-sdk.so* extracted
from the builder image) into a .deb with Section=synapse-peripherals.

synapsectl peripherals deploy . — gRPC-streams the .deb via the
existing DeployApp method. The .deb is made to simply place the shared
libraries in fixed places where the SciFi will go hunting for some entrypoint symbols
to construct the user's custom-written RecordPeripheral implementation

Mirrors apps build/deploy for peripheral plugin packages:

  synapsectl peripherals build .   — cross-compiles a plugin .so against
    scifi-peripheral-sdk inside the example repo's Dockerfile, then
    packages it (plus the bundled libscifi-peripheral-sdk.so* extracted
    from the builder image) into a .deb with Section=synapse-peripherals.

  synapsectl peripherals deploy .  — gRPC-streams the .deb via the
    existing DeployApp method. scifi-server's app_updater.cpp install
    gate now accepts either synapse-apps or synapse-peripherals.

No new RPCs. No SFTP. No systemd service wrapping (plugins live at
/usr/lib/scifi/plugins/ and are dlopen'd by scifi-server's PluginRegistry
at startup).

Also pins the synapse-api submodule to current main HEAD.
@calvinleng-science calvinleng-science merged commit 75818af into main May 20, 2026
2 checks passed
@calvinleng-science calvinleng-science deleted the calvin/peripheral-sdk branch May 20, 2026 02:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant