Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ad1bd3f
feat(core): add pure-Rust XSD parser, PolyXML-IR, and Tarjan SCC cycl…
nth-bailey Sep 19, 2026
e96d33a
feat(cli): implement unified polyxml CLI and polyxml.toml workspace m…
nth-bailey Sep 19, 2026
2863ac1
feat(codegen): implement modern Python 3.12+ codegen for @dataclass a…
nth-bailey Sep 19, 2026
47c2569
feat(codegen): implement zero-copy Rust 2021/2024 codegen with Cow an…
nth-bailey Sep 19, 2026
f815c19
feat(codec): synthesize zero-copy streaming deserializer and serializ…
nth-bailey Sep 19, 2026
fe7bc60
feat(codegen): implement modern TypeScript 5+ and Zod codegen (#28)
nth-bailey Sep 19, 2026
390d7da
feat(codegen): implement modern Java 21+ records and sealed interface…
nth-bailey Sep 19, 2026
dca633b
feat(codegen): implement modern C++20/C++23 value types and concepts …
nth-bailey Sep 19, 2026
c743fb8
feat(codegen): implement modern Go 1.22+ struct and choice validation…
nth-bailey Sep 19, 2026
28f1ed9
feat(codegen): implement modern C# 12 / .NET 8+ records and primary c…
nth-bailey Sep 19, 2026
9969d2c
style(csharp): apply cargo fmt code formatting
nth-bailey Sep 19, 2026
752b18e
docs: document PolyXML schema compiler, 7 target languages, CLI, and …
nth-bailey Sep 19, 2026
a3a8935
ci: ensure polyxml CLI binary is built before running Python tests
nth-bailey Sep 19, 2026
eecd880
test(python): conditionally invoke pyright only when installed
nth-bailey Sep 19, 2026
605480a
fix(compiler): W3C conformance hardening for anonymous types, cycles,…
nth-bailey Sep 20, 2026
3084ef6
style: cargo fmt formatted schema parser and codegen
nth-bailey Sep 20, 2026
b5a3f98
docs: comprehensive updates for schema compiler, C# 12 guide, and W3C…
nth-bailey Sep 20, 2026
ad27793
docs: add Why PolyXML comparison matrix, benchmarks showcase, and arc…
nth-bailey Sep 20, 2026
22cc5a7
fix(test): write standalone .csproj directly to eliminate dotnet new …
nth-bailey Sep 20, 2026
d62f36e
docs: revamp README to spotlight polyglot schema compiler and code ge…
nth-bailey Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@v7

- name: Build PolyXML CLI Binary
run: cargo build -p polyxml-cli

- name: Build and Install PolyXML Python Extension
working-directory: crates/polyxml-python
run: uv pip install --system -e ".[dev]"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ node_modules/

# CMake / C++
bindings/cpp/build/
gcm.cache/
**/gcm.cache/

# Java / Maven
bindings/java/target/
Expand Down
18 changes: 13 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ repository.

## 1. Project Overview

`PolyXML` is the high-performance, polyglot native XML data-binding engine, providing
ultra-fast bidirectional XML serialization and deserialization across programming
languages, starting with Rust and Python (`dataclasses` and Pydantic v2).
`PolyXML` is the high-performance, polyglot native XML data-binding engine and schema compiler, providing
ultra-fast bidirectional XML serialization, deserialization, and multi-language code generation across
7 modern ecosystems: **Rust**, **Python** (dataclasses & Pydantic v2), **C++20**, **Java 21+**, **TypeScript 5+**, **Go 1.22+**, and **C# 12 / .NET 8+**.

- **Technology**: Rust 2021, PyO3 (`abi3-py312`), `quick-xml`, `lexical-core`, `smallvec`.
- **Technology**: Rust 2021, PyO3 (`abi3-py312`), `quick-xml`, `lexical-core`, `smallvec`, `minijinja`.
- **Repository**: `nth-bailey/PolyXML`
- **Supported Python**: `Python >= 3.12` exclusively.
- **Maintainer**: Bailey Nguyen (`bailey.tan.nguyen@gmail.com`).
Expand All @@ -24,7 +24,7 @@ When contributing or refactoring, strictly maintain the following invariants:

1. **Pure Rust Core Engine (`crates/polyxml-core`)**:
- The core engine MUST have **zero Python, PyO3, or runtime-specific dependencies**.
- All parsing, serialization, and schema IR logic must remain 100% pure, idiomatic Rust.
- All parsing, serialization, schema parser, and schema IR logic must remain 100% pure, idiomatic Rust.

2. **Python ABI3 Portability (`abi3-py312`)**:
- The Python extension (`crates/polyxml-python`) is compiled against the stable Python 3.12+ ABI (`abi3`).
Expand All @@ -43,6 +43,14 @@ When contributing or refactoring, strictly maintain the following invariants:
statement and branch test coverage** (`fail_under = 100` in `pyproject.toml`).
- All new features or bug fixes must include corresponding tests in `tests/`.

6. **Language-Agnostic Schema IR & Tarjan SCC Cycle-Cutting**:
- The schema compiler in `polyxml-core` normalizes XSD into `SchemaIR`.
- All cyclic and self-referential types must be detected and broken via Tarjan's Strongly Connected Components algorithm (`is_cycle_cut = true`) with minimal cut points (`Box<T>`, pointers, `std::unique_ptr`, `z.lazy`).

7. **Standalone W3C Conformance Benchmarks**:
- Deep W3C XSTS conformance testing is maintained in the dedicated companion repository [`polyxml-w3c-tests`](https://github.com/nth-bailey/polyxml-w3c-tests) to keep the main repository CI fast. Any compiler changes should be verified against `polyxml-w3c-tests`.


---

## 3. Tooling & Development Workflow
Expand Down
Loading
Loading