Host application bundle for ModLink Studio
Project description
ModLink Studio
面向设备接入、多模态采集与展示的桌面宿主项目。
ModLink Studio 的目标不是为每一种设备单独写一个上位机,而是把设备搜索、连接、流描述、实时预览、采集控制和录制保存统一到同一套运行时里。设备接入者主要实现 driver 和 StreamDescriptor;宿主、录制链路和大部分展示逻辑复用平台层能力。
当前仓库主线是 0.2.0。这一版本是一次明确的 breaking release:
modlink_sdk/modlink_core已切成纯 Python runtime0.2.0不兼容0.1.x的 Qt-style driver API- UI 仍处于适配期,但 backend 已经从 Qt 运行时语义中拆开
0.2.0的发布边界是稳定采集、录制和保存;录制回放延后到0.3.0
当前版本变更摘要见根目录 CHANGELOG.md,后续版本规划见 ROADMAP.md。
查看更多界面截图
Release Status
0.2.0 当前已经完成发布收口,公开安装入口以 PyPI 为准:
- 正式公开发布渠道:PyPI
TestPyPI rehearsal已完成TestPyPI只用于发布链路演练,不作为日常安装源- 当前仓库已切到
0.2.0正式版代码
Install
0.2.0 的主安装入口是:
python -m pip install modlink-studio
安装插件不再通过 PyPI extras。主包安装完成后,可使用独立的插件管理命令按需安装插件。
当前第一阶段,这个命令先覆盖官方驱动插件;后续会逐步扩成更通用的插件管理入口,而不仅仅是官方驱动安装器:
modlink-plugin list
modlink-plugin install host-camera
modlink-plugin list --installed
modlink-plugin status
modlink-plugin uninstall host-camera
更完整的安装说明、升级说明和源码运行方式见 vpdocs/install.md。
Plugin Management
0.2.0 当前提供以下官方驱动:
- Host Camera
- Host Microphone
- OpenBCI Ganglion
这些驱动现在由独立仓库 ModLink-Studio-Plugins 维护;安装路径是:
- 先安装
modlink-studio - 再使用
modlink-plugin install <plugin_id>从插件仓库 Pages 索引解析版本,并从插件仓库 GitHub Release 安装对应插件 wheel
当前这个命令仍以官方驱动为中心;后续版本会把它继续扩展成更完整的插件管理工具,例如统一查看插件状态、已安装第三方插件、安装来源和可升级项。
Driver Development
0.2.0 这一版的公开发布重点是主宿主包 modlink-studio,不会同步公开独立的 modlink-sdk PyPI 包。
不过仓库里的 SDK 契约和 driver 接入模型已经稳定下来;如果当前要做内部联调或前置驱动开发,仍然建议按这条边界思考:
modlink-sdk- 设备自身的传输层依赖
只有在确实需要运行时服务时,才额外依赖 modlink-core。当前 0.2.0 阶段如果要做外部 driver 联调,应以源码仓库和本地环境为准,而不是假定存在独立公开的 SDK 安装包。
如果是新建 driver 项目,可以使用独立脚手架工具:
npx @modlink-studio/plugin-scaffold --zh
在仓库内联调脚手架时:
npm install
npm --workspace @modlink-studio/plugin-scaffold run dev -- --zh
这个工具会交互式生成一个可启动的 driver 项目骨架,通常包括:
pyproject.tomlREADME.mdLICENSE.gitignore<plugin_name>/driver.py<plugin_name>/factory.py<plugin_name>/__init__.pytests/test_smoke.py
Repository Layout
modlink-studio/
├─ apps/
│ ├─ modlink_studio/
│ ├─ modlink_studio_qml/
│ └─ modlink_server/
├─ packages/
│ ├─ modlink_sdk/
│ ├─ modlink_core/
│ ├─ modlink_qt_bridge/
│ ├─ modlink_plugin_manager/
│ ├─ modlink_ui_qt_widgets/
│ └─ modlink_ui_qt_qml/
├─ tools/
│ └─ modlink_plugin_scaffold/
└─ vpdocs/
apps/modlink_studio/: 主桌面宿主入口apps/modlink_studio_qml/: QML 宿主入口apps/modlink_server/: FastAPI 服务宿主入口packages/modlink_sdk/: 当前仓库内的最小 SDK 契约packages/modlink_core/: 纯 Python runtime、流总线和采集基础设施packages/modlink_qt_bridge/: Qt 主线程适配层packages/modlink_plugin_manager/: 跟随主包一起安装的插件管理 CLIpackages/modlink_ui_qt_widgets/: Qt Widgets UI 包packages/modlink_ui_qt_qml/: Qt QML UI 包tools/modlink_plugin_scaffold/: 独立 npm driver 脚手架工具vpdocs/: VitePress 文档站源码
Contributor Setup
仓库内开发使用 uv:
uv sync
uv run modlink-studio
如果要联调官方驱动源码,请切到独立仓库 ModLink-Studio-Plugins 进行构建与发布验证;主仓库不再承载官方驱动源码目录。
根仓库执行 uv sync --dev 后,apps/modlink_server/tests 也会被当前工作区虚拟环境直接覆盖;不需要再单独创建 server 专用环境。
Code Style And Pre-Commit
当前仓库把 Python 和 tools/modlink_plugin_scaffold 的 TypeScript 工具链分开治理:
- Python 代码统一使用
ruff负责 lint、import sorting 和 format,配置位于根 pyproject.toml - 提交前检查使用根
.pre-commit-config.yaml - 编辑器基础约束写在根
.editorconfig - Git 行尾策略写在根
.gitattributes tools/modlink_plugin_scaffold/这条 React + Ink + TypeScript 工具链使用Biome
首次使用建议安装 pre-commit:
uv run pre-commit install
手动运行整套提交前检查:
uv run pre-commit run --all-files
只跑 Python 这一层的检查与格式化:
uv run ruff check . --fix
uv run ruff format .
只跑 plugin_scaffold 这条 TypeScript 工具链:
npm run scaffold:lint
npm run scaffold:lint:fix
npm run scaffold:format
Docs And License
项目文档使用 VitePress,源码位于 vpdocs/,站点发布到 https://modlink-studio.github.io。
本地预览:
npm ci
npm run docs:vp:dev
构建文档:
npm ci
npm run docs:pdoc:build
npm run docs:vp:build
当前仓库整体按 GPL-3.0-or-later 路线发布,详细条款见根目录 LICENSE。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file modlink_studio-0.2.0.tar.gz.
File metadata
- Download URL: modlink_studio-0.2.0.tar.gz
- Upload date:
- Size: 265.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b5022bc1b6f088dd3160a1da5b484dce92b597f147e760aca47ac19b1b118cd
|
|
| MD5 |
f08a192a243d22b3d6c2c47e9f4d0261
|
|
| BLAKE2b-256 |
ada819b9dcff428a1198105614a42ff50bae455580ae472de7fafee4d908b429
|
Provenance
The following attestation bundles were made for modlink_studio-0.2.0.tar.gz:
Publisher:
publish-python-packages.yml on modlink-studio/ModLink-Studio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modlink_studio-0.2.0.tar.gz -
Subject digest:
8b5022bc1b6f088dd3160a1da5b484dce92b597f147e760aca47ac19b1b118cd - Sigstore transparency entry: 1243783302
- Sigstore integration time:
-
Permalink:
modlink-studio/ModLink-Studio@cede436162ca7ee5cda4b3989851937cad533324 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/modlink-studio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python-packages.yml@cede436162ca7ee5cda4b3989851937cad533324 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file modlink_studio-0.2.0-py3-none-any.whl.
File metadata
- Download URL: modlink_studio-0.2.0-py3-none-any.whl
- Upload date:
- Size: 316.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a6c18cf06ae43d9316f13f6b3da4d2c5d40a7595ee81ade06dc39c7f46a5fc4
|
|
| MD5 |
5fb4e067dc5f8c5f7a06bc8c4c557233
|
|
| BLAKE2b-256 |
f1382d1953b51766b958cc8cea87de1d77f6ede96f35d0b1f7bbacaaef97fc78
|
Provenance
The following attestation bundles were made for modlink_studio-0.2.0-py3-none-any.whl:
Publisher:
publish-python-packages.yml on modlink-studio/ModLink-Studio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
modlink_studio-0.2.0-py3-none-any.whl -
Subject digest:
5a6c18cf06ae43d9316f13f6b3da4d2c5d40a7595ee81ade06dc39c7f46a5fc4 - Sigstore transparency entry: 1243783308
- Sigstore integration time:
-
Permalink:
modlink-studio/ModLink-Studio@cede436162ca7ee5cda4b3989851937cad533324 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/modlink-studio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-python-packages.yml@cede436162ca7ee5cda4b3989851937cad533324 -
Trigger Event:
workflow_dispatch
-
Statement type: