Portability Decision¶
The workspace is not pursuing no_std as a current repository-wide target.
Decision Flow¶
flowchart LR
contract["shared contract"]
std["std-backed workspace"]
infra["filesystem and process users"]
future["future portability review"]
contract --> std
std --> infra
contract --> future
Current Decision¶
- infrastructure and command crates depend on filesystem, process, and OS facilities
- the current shared contracts and algorithms prioritize clarity and repository ergonomics over embedded portability
Why This Belongs Here¶
The question most often starts at the foundational layer: whether core meaning
and record types are intended to anchor a future no_std subset. Today the
answer is no, and that decision should be documented with the owner of shared
cross-crate assumptions.
What This Decision Allows¶
- Core contracts may use the standard library when that keeps meaning explicit.
- Serialization and validation code may optimize for repository evidence first.
- Downstream crates do not need compatibility shims for embedded builds.
What Would Reopen The Decision¶
| trigger | required review |
|---|---|
| a supported embedded target appears | identify which core contracts must be portable |
a crate requests alloc-only contracts |
separate data shape from repository behavior |
| signal or nav algorithms need standalone reuse | prove the algorithms can remain independent from infra |
First Proof Check¶
crates/bijux-gnss-core/Cargo.tomlcrates/bijux-gnss-core/docs/BOUNDARY.md../../bijux-gnss-infra/foundation/dependencies-and-adjacencies.md
Review Checks¶
- Does the change assume portability that the repository has not accepted?
- Is standard-library use attached to explicit repository or contract value?
- Would a future portability subset know which owner must change first?