initial commit
This commit is contained in:
commit
a2922b8bad
59 changed files with 2684583 additions and 0 deletions
47
src/lib.rs
Normal file
47
src/lib.rs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
//! source2rosetta — library crate: the reusable derivation/verification engine behind the CLI.
|
||||
//!
|
||||
//! The `source2rosetta` binary (`src/main.rs`) is a thin clap front-end over these modules. Keeping the
|
||||
//! logic in a library lets the CI pipeline (and tests) link and call it directly instead of shelling
|
||||
//! out and scraping stdout.
|
||||
//!
|
||||
//! # Supported API surface
|
||||
//! A fork or embedder calls into these. Every engine entry point takes an explicit `&profile::GameProfile`
|
||||
//! (there is NO process-global — CS2 and Dota can be derived in the same process):
|
||||
//! - [`pipeline`] — the pure OFFLINE derivation engine (nothing here attaches to a running server):
|
||||
//! `corpus_model_cmd` (distill the corpus model), `fold_model_cmd` (roll model N → N+1), `backfill_cmd`
|
||||
//! (cross-build name/offset timelines), plus the `ClassScope` / `CorpusSource` inputs.
|
||||
//! - [`produce`] — CI orchestration + the LIVE half (everything that drives a running server): `produce_cmd`
|
||||
//! (the whole per-game build — boots its own bots server for validate-live + typed netvars when a game is
|
||||
//! given), `integration_test_cmd` (the standalone live oracle), `classify_change_cmd` / `filter_corpus_cmd`
|
||||
//! (the CI branch primitives), `unpack_seed`.
|
||||
//! - [`profile`] — the per-game knobs: [`profile::GameProfile`] plus the `CS2` / `DOTA` consts. Adding a game is a const here.
|
||||
//! - [`model`] / [`render`] (re-exported from `source2rosetta-core`) — the canonical derived-gamedata model and its
|
||||
//! format emitters; the standalone `source2rosetta-gen` binary links just `core`.
|
||||
//!
|
||||
//! # Low-level engine (implementation detail)
|
||||
//! The modules below are the building blocks the API composes (ELF/RTTI/SchemaSystem readers, the fingerprint
|
||||
//! metric, the sig/abi machinery, the data-parallel primitive, the name taxonomy). They stay `pub` for the fuzz
|
||||
//! harness and advanced embedders, but carry NO stability promise — treat them as internal.
|
||||
|
||||
// ---- supported API ----
|
||||
pub mod pipeline;
|
||||
pub mod produce;
|
||||
pub mod profile;
|
||||
|
||||
// ---- low-level engine (implementation detail; `pub` only for the fuzz harness, not a stable surface) ----
|
||||
pub mod abi;
|
||||
pub mod elf;
|
||||
pub mod emit;
|
||||
pub mod fingerprint;
|
||||
pub mod live;
|
||||
pub mod locate;
|
||||
pub mod par;
|
||||
pub mod rtti;
|
||||
pub mod schema;
|
||||
pub mod sig;
|
||||
pub mod taxonomy;
|
||||
pub mod xref;
|
||||
|
||||
// The canonical model + emitters live in the deriver-free `source2rosetta-core` crate; re-export them so
|
||||
// existing `source2rosetta::{model, render}` paths keep resolving.
|
||||
pub use source2rosetta_core::{model, render};
|
||||
Loading…
Add table
Add a link
Reference in a new issue