Language Repositories¶
PRAXO-CORE is a multi-language framework. Go is the reference implementation; other implementations have independent packages and dedicated repositories so that language-specific discovery does not depend on finding a subdirectory in a Go-oriented monorepo.
The canonical source, specification, and release workflows remain in
axisvela/praxo-core. A dedicated
repository is either a publication source or a discovery mirror; the registry
version remains the authority for what consumers install.
Implemented Languages¶
| Language | Repository | Role |
|---|---|---|
| Python | axisvela/praxo-core-python | Discovery mirror of language/python; includes spec/ for conformance |
| TypeScript | axisvela/praxo-core-typescript | Discovery mirror of language/typescript; includes spec/ for conformance |
| Java | axisvela/praxo-core-java | Discovery mirror of language/java; includes spec/ |
| Rust | axisvela/praxo-core-rust | Discovery mirror of language/rust; includes spec/ |
| C# / .NET | axisvela/praxo-core-csharp | Discovery mirror of language/csharp; includes spec/ |
| R | axisvela/praxo-core-r | Discovery mirror of language/r; includes spec/ |
| Elixir | axisvela/praxo-core-elixir | Discovery mirror of language/elixir; includes spec/ |
| Ruby | axisvela/praxo-core-ruby | RubyGems publication source |
| PHP | axisvela/praxo-core-php | Packagist publication source |
| Lua | axisvela/praxo-core-lua | Dedicated Lua repository |
| Swift | axisvela/praxo-core-swift | Swift Package Index source |
| Julia | axisvela/PraxoCore.jl | Julia General Registry mirror |
| V | axisvela/praxo-core-v | Split V repository |
| OCaml | axisvela/praxo-core-ocaml | Split OCaml repository |
| Nim | axisvela/praxo-core-nim | Split Nim repository |
| D | axisvela/praxo-core-d | DUB publication source |
| Erlang | axisvela/praxo-core-erlang | Discovery mirror of language/erlang; includes spec/ |
| Perl | axisvela/praxo-core-perl | Discovery mirror of language/perl; includes spec/ |
| Haskell | axisvela/praxo-core-haskell | Discovery mirror of language/haskell; includes spec/ |
| Dart | axisvela/praxo-core-dart | Discovery mirror of language/dart; includes spec/ |
| Zig | axisvela/praxo-core-zig | Discovery mirror of language/zig; includes spec/ |
| C | axisvela/praxo-core-c | Discovery mirror of language/c; includes spec/ |
| C++ | axisvela/praxo-core-cpp | Discovery mirror of language/cpp; includes spec/ |
| Fortran | axisvela/praxo-core-fortran | Discovery mirror of language/fortran; includes spec/ |
| COBOL | axisvela/praxo-core-cobol | Discovery mirror of language/cobol; includes spec/ |
| PowerShell | axisvela/praxo-core-powershell | Discovery mirror of language/powershell; includes spec/ |
| MATLAB | axisvela/praxo-core-matlab | Discovery mirror of language/matlab with the shared MATLAB/Octave core |
| GNU Octave | axisvela/praxo-core-octave | Discovery mirror of language/octave with the shared MATLAB/Octave core |
| Delphi / Free Pascal | axisvela/praxo-core-delphi | Discovery mirror of language/delphi; includes spec/ |
| Objective-C | axisvela/praxo-core-objc | Discovery mirror of language/objc; includes spec/ |
Go remains at the repository root because its module path is
github.com/axisvela/praxo-core/v2. Bridges under bindings/ and language
samples under examples/ remain in the monorepo.
Automated Refresh¶
.github/workflows/language-mirrors.yml rebuilds the 21 discovery mirrors when
language/, spec/, LICENSE, or the sync script changes on main. It needs a
PRAXO_MIRROR_TOKEN secret with push access to the mirror repositories. A manual
workflow_dispatch run with mode=check reports drift without pushing. When the
secret is not configured, the sync job emits a warning and skips the push.
The nine publication-source repositories (Ruby, PHP, Lua, Swift, Julia, V, OCaml, Nim, and D) are intentionally excluded because they have their own release layouts and workflows. They must be updated through their publication process, not by overwriting them with the mirror layout.
Why Mirrors Include spec/¶
A mirror keeps the canonical language/<language> tree and the shared spec/
vectors so its tests and conformance runner work. It does not replace the
monorepo release workflow. Mirrors are refreshed from the canonical source; if a
mirror lags, use the monorepo and the registry version. Do not infer registry
availability, conformance, or production readiness from the existence of a
repository.
Adding or Updating a Repository¶
- Keep the canonical source under
language/<language>in the monorepo. - Mirror that directory plus
spec/,LICENSE, and a language-specific README. - Reuse the language README's registry, install, and scope text; link back to the canonical source and documentation.
- Run the language's conformance and tests in the mirror before publishing it.
- Add the repository to this page and to the language's
REGISTRY.mdorllms.txtentry when it becomes active.