bloqade_lanes_bytecode_core/lib.rs
1//! # Bloqade Lanes Bytecode Core
2//!
3//! Pure Rust library for the Bloqade quantum device bytecode format.
4//! Provides types and operations for:
5//!
6//! - **Architecture specification** ([`arch`]) — device topology, transport buses,
7//! zones, grids, and validation
8//! - **Bytecode** ([`bytecode`]) — instruction encoding/decoding, program
9//! serialization (binary BLQD + text SST), and validation
10//! - **Versioning** ([`Version`]) — semantic versioning for arch specs and programs
11//!
12//! This crate contains no Python or C FFI dependencies. It is the foundation
13//! that the PyO3 bindings and CLI tool build upon.
14//!
15//! ## Crate layout
16//!
17//! - [`arch::types`] — `ArchSpec`, `Word`, `Grid`, `Bus`, `Zone`, etc.
18//! - [`arch::addr`] — bit-packed address types (`LocationAddr`, `LaneAddr`, `ZoneAddr`)
19//! - [`arch::query`] — arch spec queries (position lookup, lane resolution, JSON loading)
20//! - [`arch::validate`] — structural validation with collected errors
21//! - [`bytecode::instruction`] — instruction enum and opcode computation
22//! - [`bytecode::opcode`] — device codes, instruction codes, opcode packing
23//! - [`bytecode::encode`] — binary encoding/decoding of instructions
24//! - [`bytecode::program`] — `Program` type with binary (BLQD) serialization
25//! - [`bytecode::text`] — SST text assembly format (parse/print)
26//! - [`bytecode::validate`] — program validation (structural, address, stack simulation)
27
28pub mod arch;
29pub mod atom_state;
30pub mod bytecode;
31pub mod version;
32
33pub use version::Version;