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.1.tar.gz (68.9 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.1-cp314-abi3-win_amd64.whl (1.5 MB view details)

Uploaded CPython 3.14+Windows x86-64

xian_tech_compiler_core-0.1.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: xian_tech_compiler_core-0.1.1.tar.gz
  • Upload date:
  • Size: 68.9 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.1.tar.gz
Algorithm Hash digest
SHA256 5b9fb28213529440a1a5bcc90a759058a6b220347487a358907fa1ee9fe3d357
MD5 ce3415f5ff71727fe6b8b63e848fff54
BLAKE2b-256 a37bb3ea75ec9652a04c20f939b25ace3b320edd969df518d2ea39b4bd8e9fe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.1.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.1-cp314-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.1-cp314-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8659417b928cfa935cd8f234aa41c472810eeb062051dadc9e1609b258423182
MD5 f80f223ba8daaab17650f4297bb61adb
BLAKE2b-256 a2815b2e1dfa8db7ab2452d12c23de398bc8ee894e7c947cb7680ebc5b8d8b55

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.1-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.1-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.1-cp314-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b898f4969e1fbc1f86fc0cba5804b53c79c95e5d2407058f77c60881f502dd9
MD5 846f868d5e76ef817189b234bf660202
BLAKE2b-256 b7a06746b169ea2b0c8ba65b1b043a1f23e3a2b51675635278ce719b87da98d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.1-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.1-cp314-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.1-cp314-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b78d176ca2b855f34b4d659ce2f4f7369724274ebcdbeda3f4616dadc06b1a7
MD5 ca8a3144b5a006471d407cd736025e9f
BLAKE2b-256 2ed1772935bdca1e0b4b6ce56fce2aadeb3159f6993ffe1eab64c10c18e4293a

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.1-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.1-cp314-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for xian_tech_compiler_core-0.1.1-cp314-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d5391a8e0ecbc000a459f3b81c079185162373197f44c27628db31739a273c19
MD5 a743a98c2fe3ec22c688a29ca700d15e
BLAKE2b-256 8f93156fb757c3d70eab143c611729420a9a4971c19d552f914d4a48ea88f46f

See more details on using hashes here.

Provenance

The following attestation bundles were made for xian_tech_compiler_core-0.1.1-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