Shared vocabulary, semantics, and test material for the libpath family — file-system path forms under selectable Unix or Windows rule sets.
libpath-concepts is a public knowledge base for the libpath multi-language programme. It is not a runtime library: language APIs and implementations live in the libpath ports.
The family treats file-system paths as cross-platform values with an explicit part model, relativity lattice, and selectable OS rule sets (Unix or Windows). Filesystem enumeration and I/O are and will always remain out of scope — that work belongs to recls and the operating system.
Scope is file-system paths only. URL/URI, registry keys, and other non–file-system locators are excluded.
| Pillar | Role | Status |
|---|---|---|
| Describe | OS path models (Unix vs Windows), relativity, and decomposition | ✅ Phase 1 — docs/ |
| Prescribe | Rich, family-aligned nomenclature (clearly labelled provisional) | ✅ Phase 1 — docs/glossary.md |
| Compare | Cross-language survey of popular path libraries | ⏳ Phase 2 — docs/stdlib-survey.md (planned) |
| Supply | Language-independent unit-test fixtures for ports | ⏳ Phase 3 — fixtures/ (planned) |
| Document | Contents |
|---|---|
| docs/rationale.md | Scope, audience, and relationship to ports |
| docs/os-models.md | Unix and Windows path form models |
| docs/parts.md | Path descriptor part model |
| docs/classification.md | Relativity lattice and classification taxonomy |
| docs/compare-and-equate.md | Ordering vs boolean sameness |
| docs/glossary.md | Provisional term definitions |
All prescribed terms in this repository are provisional until the operator supplies stored web material on this topic and explicitly seals decisions. See docs/glossary.md and the standing reminder in the programme strategy documents.
See CONTRIBUTING.md. Defect reports, clarifications, and pull requests are welcome on https://github.com/synesissoftware/libpath-concepts.
Runtime libpath ports (implementations):
- libpath — C/C++;
- libpath.Go — Go;
- libpath.Python — Python;
- libpath.Ruby — Ruby;
- libpath.Rust — Rust.
libpath is used in recls and related libraries.
Internal programme documents (specifications, gap analysis, delivery plan) live in the Synesis freelibs workspace at .management/strategy/libpath/:
- concepts-development-spec.md — build specification for this repository;
- family-gap-analysis-and-plan.md — port gap analysis and staged plan.
libpath-concepts is released under the 3-clause BSD license. See LICENSE for details.