Skip to content

Latest commit

 

History

History
95 lines (71 loc) · 3.72 KB

File metadata and controls

95 lines (71 loc) · 3.72 KB

MultiProcessShell

CI License: MIT

C++/Qt multi-process shell: Host chrome + Client native-window embed + Protobuf IPC.

Phase-1 platform: Windows (form A); macOS / Linux directories are placeholders.

Canonical docs are Chinese — start at the root README.

Features

  • Multi-process UI shell: Host owns tabs / lifecycle; Clients embed via native HWND (SetParent)
  • Detachable tabs: tear-out / merge, close-tab MRU, empty-shell rules (pure rule modules + tests)
  • Protobuf IPC: authoritative IDL at proto/shell/ipc/v1/ipc.proto
  • wid behind the embed seam: tab model is tabId-only; platform handles live in EmbedContainer / TabEmbedMap
  • One-click Demo deploy: Windows windeployqt beside build-shared/demos

Requirements

Item Notes
Qt 6.8+ for Demo / Host (protocol-only tests can skip Qt)
Toolchain CMake, Ninja, Python 3; MSVC x64 (vcvars) on Windows
Deps Protobuf (optionally via CMake FetchContent)
Optional clang-format 20 for local format checks

Quick start (Windows)

:: QTDIR required; PREFIX optional (default: sibling prefix/ of the three repos)
set QTDIR=<Qt-6.8+-prefix>
set PREFIX=<install-prefix>
python scripts\install_stack.py --prefix %PREFIX%
build-shared\demos\mps_demo_host.exe

This-repo only (also defaults to build-shared):

python scripts\build_repo.py

Protocol / tab-strip tests only (Qt optional):

python scripts\build_repo.py --no-demos --test

See build.md and ci.md.

Layout

cmake/            Qt / Protobuf helpers
proto/            shell.ipc.v1 IDL
src/              Host / Client / common / ipc_qt
demos/            mps_demo_host / mps_demo_client
tests/            protocol + tab-strip unit tests
scripts/          install_stack / build_repo / build_qt / deploy_demo
clients/python/   M4b Python Hello smoke
docs/zh|en/       Chinese + English docs

Documentation

Topic 中文(主) English
Product spec ../zh/multiprocess-shell-spec.md multiprocess-shell-spec.md
Dev plan ../zh/dev-plan.md dev-plan.md
Demo morphology ../zh/demo-morphology.md demo-morphology.md
Demo acceptance ../zh/demo-acceptance.md demo-acceptance.md
Demo IPC ../zh/demo-ipc.md demo-ipc.md
IPC alternatives ../zh/ipc-alternatives.md ipc-alternatives.md
Build ../zh/build.md build.md
CI ../zh/ci.md ci.md

Policy: Prefer Chinese docs day-to-day. If the long-form product sketch disagrees with .proto, prefer .proto / Demo IPC.

Status

Capability Status
Framing + shell.ipc.v1 + mps_ipc_tests (M0) Done
Detachable tab-strip rule tests Done
Windows Demo (Home / Create Client / tear-out / embed) Done (M5 closable)
wid behind embed seam Done
M4b Python Hello Done
M6 heartbeat / unresponsive UI Done
Multi-backend / optional M7 See spec + dev-plan

License

Released under the MIT License.