Skip to main content

Shared Rust/WASM compiler core for Xian contracts

Project description

xian-compiler-core

This crate is the landing zone for the central Rust/WASM compiler described in ../../docs/RUST_COMPILER_CORE.md.

The current slice owns the artifact model, hashing rules, diagnostics, source units, parser adapter, Xian-owned syntax tree, semantic linting, source normalization, structural xian_ir_v1 lowering, and compiler fixture loader. The checked-in compiler fixtures are still generated from the current Python compiler and act as the parity oracle during the migration.

Current Surface

  • SourceUnit: validated source/module/profile input wrapper
  • ContractArtifact: typed xian_contract_artifact_v1 deployment artifact
  • build_contract_artifact(...): construct artifact metadata from canonical source and canonical IR bytes
  • validate_contract_artifact(...): verify artifact format, profile, hashes, JSON IR, and embedded IR identity fields
  • CompilerDiagnostic: stable structured diagnostic payload
  • parse_source(...): RustPython-backed parser adapter for the current Python-like contract syntax, returning an opaque parsed module
  • parse_diagnostics(...): deterministic parser diagnostic adapter with source ranges
  • parse_to_syntax(...): parse source and convert it into a compact Xian-owned syntax tree
  • build_syntax_tree(...): convert an existing parsed module into Xian syntax
  • SyntaxModule, SyntaxStatement, SyntaxExpression: Rust-owned syntax data model used by later lint/normalize/lower stages
  • lint_syntax(...): semantic lint rules over SyntaxModule
  • normalize_syntax(...): deterministic formatter over the Xian syntax tree
  • normalize_source(...): parse, optionally lint, and return canonical source
  • lower_syntax_to_ir(...): lower a validated syntax tree into structural xian_ir_v1
  • lower_source_to_ir(...): normalize, parse, optionally lint, and lower source into structural xian_ir_v1
  • lower_source_to_ir_json(...): return canonical JSON for the lowered IR
  • compile_contract_artifact(...): normalize, lower, and build a hash-checked xian_contract_artifact_v1
  • describe_vm_host_surface(): expose the xian_vm_v1_host_v1 host catalog
  • diagnose_contract(...): first high-level compiler entrypoint; currently validates source/profile, parser diagnostics, unsupported syntax nodes, and semantic lint diagnostics when lint is enabled
  • compiler_version(): machine-readable version and schema metadata
  • CompilerFixture: typed representation of xian.compiler_fixture.v1
  • parse_compiler_fixture_json(...): load a fixture JSON document
  • CompilerFixture::validate_basic(): deterministic structural checks for accepted and rejected fixture records

Fixtures are generated from the current Python compiler with:

uv run python scripts/generate_compiler_fixtures.py \
  packages/xian-compiler-core/tests/sources

Run the Rust fixture checks with:

cargo test --manifest-path packages/xian-compiler-core/Cargo.toml

Check the optional binding layers with:

cargo check --manifest-path packages/xian-compiler-core/Cargo.toml \
  --features python-extension
cargo check --manifest-path packages/xian-compiler-core/Cargo.toml \
  --features wasm

Build the Python package locally with:

uv run python -c "import xian_compiler_core"

Build the WASM package from packages/xian-compiler-core/npm with:

npm run build

The WASM build requires wasm-pack and a Rust toolchain with the wasm32-unknown-unknown standard library installed. The generated npm package is consumed by browser apps such as xian-ide-web and by JS callers that want to compile source locally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xian_tech_compiler_core-0.1.3.tar.gz (69.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xian_tech_compiler_core-0.1.3-cp314-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14+Windows x86-64

xian_tech_compiler_core-0.1.3-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14+manylinux: glibc 2.17+ x86-64

xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14+macOS 11.0+ ARM64

xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14+macOS 10.12+ x86-64

File details

Details for the file xian_tech_compiler_core-0.1.3.tar.gz.

File metadata

  • Download URL: xian_tech_compiler_core-0.1.3.tar.gz
  • Upload date:
  • Size: 69.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for xian_tech_compiler_core-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2856eb61ff16a20760bea8baaedbd5949bb3e0bd1e861d8b525a0ed36dea81ea
MD5 716393460a5e8bd225798f588568b14b
BLAKE2b-256 dc6b6af4758de3b57e22abf8bbd00d72e72e4e24f2d67d847a62593a579dd38a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.3.tar.gz:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.3-cp314-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.3-cp314-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c60e7bf6cfeed02f95f5ebeded5b6344b17b4b78b540de966e95a6b5f653b3ac
MD5 2d9383d9ce1bcf65e5dd98cec041f26c
BLAKE2b-256 3c386913a861ecd20ae606d56df02ee66c5ca81912bdb40a240bf2ae530deb9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.3-cp314-abi3-win_amd64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.3-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.3-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7cde5fb214eaa79048d8e91709174abf7877bf79033370e8de4d212e57f9f69
MD5 4ab703766c8a0826465f302ec6b603f6
BLAKE2b-256 42898f1428c4e4ab1cd30302230321fa1b6fa56a54a2f44d3f0417ab7495b1e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.3-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3203583e71c72ef3006a8ebdbf6fb0fb50e398be9d58116f198a22bf954931b6
MD5 6cd01da03e812a05db3ac8e106ea2ca8
BLAKE2b-256 81639951f034921f0d7cdcc8bf65f48c03d5c683d2a9710039f53f324af43698

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3928e5e370784afaceb480272997c35f0ed5e760db134dfd8098de277ba31eca
MD5 949ec9a587cb1eb940306140b89530ed
BLAKE2b-256 e655b378e2c66f382b4b40edd5b3fb9eeb5d5e8cfead65e6164d9b6e9d1ee4f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.3-cp314-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on xian-technology/xian-contracting

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page