paritytech / paritytech/host-rust-core
Host monorepo migration
@TarikGul is already working on this.
Since Sep 9, 2026.
- Dominant language
- Swift
- Stars
- 10
- Forks
- 3
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 148
Description
Bring every host into this repository alongside the shared Rust core, so one change is
built and tested across all hosts in a single pull request and each pull request produces
an installable build per host.
Today a host consumes the core as a published artifact and adopts it separately, so one
logical change becomes several coordinated pull requests, and two hosts can run different
core versions with no check failing.
Design and rejected alternatives: docs/design/host-monorepo.md.
How to read this epic
Sub-issues are each one reviewable pull request. Ordering is expressed as Depends on
inside each sub-issue rather than as phases, so anything unblocked can be picked up.
Three rules the sequence relies on:
- Imports are additive. Adding a host's tree changes nothing that already exists and
cannot break the default branch. - Building at HEAD is the only behavioural change. It lands separately per host and is
revertible on its own. - One host at a time. The next host does not start until the previous one is green.
Order: iOS, then Android, then web
iOS first. It already declares the core as a dependency, pinned to an exact published
version, so converting it to build against the in-tree core is a small change and proves
the whole path end to end.
Android second. Its core integration exists too, but on the app repo's truapi-dev
branch rather than its main, as a second runtime behind a debug-only toggle. That branch
is 4 commits ahead of main and 37 behind, so importing it directly would regress recent
app work. The import therefore takes main, and the integration is replayed on top in
#677, where the 5 file conflicts can be resolved in a reviewable change.
Web last. It is referenced from the Makefile, the end-to-end targets and the playground
skills, so it has the widest local-tooling blast radius.
Not in scope
Adopting the Rust core in place of native implementations, desktop, and
presentation-layer sharing. Each needs its own epic once lockstep CI exists.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.