Implementation Guide
The repository now includes F# implementation projects in addition to the markdown specification. The implementation is intentionally small and follows the schema/spec work rather than replacing it.
Projects
Project |
Role |
Runtime |
|---|---|---|
|
In-memory ProcessCore model, YAML codecs, SQL profile, graph traversal, and table projection helpers |
.NET, JavaScript, Python |
|
Shared Pyxpecto tests for core, YAML, and SQL behavior |
.NET, JavaScript, Python |
ProcessCore User Documentation
The F# object model, YAML codec, graph traversal helpers, fragment selector providers, and table views are documented in the ProcessCore user guide.
SQL Profile
The SQL profile artifacts live in schemas/sql/:
001_core.sqlcontains the executable SQLite DDL.seed_example.sqlcontains a small seeded process graph.seeded_core.sqliteis the generated SQLite database.design.mdexplains the relational design.
ProcessCore.SQL inside the consolidated ProcessCore project mirrors the SQL profile:
Tables.fsdefines row types for tables and views.RowCodecs.fsconverts betweenSqlRowvalues and row types.Repository.fsdefines table metadata and CRUD facades.Sql.fsdefines the portable SQL value shape andISqliteDriver.Platform/Driver.fsrecords runtime adapter choices.
Runtime Adapters
Runtime-specific SQL drivers live in target-specific files under src/ProcessCore/SQL/:
- .NET uses
Microsoft.Data.Sqlite. - JavaScript uses
better-sqlite3after Fable transpilation. - Python uses the standard-library
sqlite3module after Fable transpilation.
The JavaScript and Python adapter projects compile as .NET stubs outside their Fable runtime so the solution can build while still exposing useful runtime code after transpilation.
Commands
|
Repo-level Node tooling is already present:
|
Python test execution uses uv through the FAKE TestPy and RunTestsAll targets.
ProcessCore