1pub mod block_residual;
12pub mod capability;
13pub mod chat_template;
14pub mod config;
15pub mod decoder;
16pub mod deepseek_v4_budget;
17pub mod deepseek_v4_decoder;
18pub mod device_budget;
19pub mod engine;
20pub mod engine_factory;
21pub mod execution_plan;
22pub mod gdn;
23pub mod gemma4_engine;
24pub mod gemma4_gguf_loader;
25pub mod glm52_decoder;
26pub mod glm52_gguf_loader;
27pub mod glm_dsa;
28pub mod grammar;
29pub mod grammar_sampler;
30pub mod hf_pull;
31#[cfg(feature = "hub")]
32pub mod hub;
33pub mod hybrid_engine;
34pub mod hybrid_gguf_loader;
35pub mod hyper_connections;
36pub mod kda;
37pub mod kimi_decoder;
38pub mod kimi_generate;
39pub mod kimi_gguf_loader;
40pub mod kimi_loader;
41pub mod kimi_tokenizer;
42pub mod kimi_validate;
43pub mod kv_budget;
44pub mod latent_moe;
45pub mod llama4_engine;
46pub mod loader;
47pub mod minimax_engine;
48pub mod mla;
49pub mod mla_gguf_loader;
50pub mod mmproj;
51pub mod output_projection;
52pub mod prefix_cache;
53pub mod recurrent_engine;
54pub mod residency_report;
55pub(crate) mod sampler_chain;
56pub mod sampling;
57pub mod speculative;
58pub mod t5_engine;
59pub mod tensor_role;
60pub mod tokenizer;
61pub mod vision;
62pub mod vl_engine;
63
64pub use capability::{
65 architecture_catalog, coverage_report_markdown, resolve_architecture, resolve_profile,
66 ArchPath, ArchProfile, ArchScope, DecoderFamily, MemoryKind, QkNormStyle,
67};
68pub use config::{deepseek_v4_pro, glm_5_2, kimi_k3, FfnActivation, ModelConfig, RopeLayout};
69pub use decoder::{Decoder, MultiSeqKv};
70pub use device_budget::{BudgetBackend, DeviceBudget};
71pub use engine::{
72 DeepseekV4Engine, Engine, Glm52Engine, KimiEngine, MlaDenseFfn, MlaEngine, MlaLayerFfn,
73 MlaLayerWeights, MlaMoeFfn, MlaMoeRuntime, TextTokenizer,
74};
75pub use engine_factory::{
76 ensure_generic_decoder, load_gemma4_engine_from_path, load_glm52_engine_from_path,
77 load_mla_engine_from_path, select_engine_kind, EngineSelectError, SelectedEngineKind,
78 ServedEngine,
79};
80pub use execution_plan::{ExecutionPlan, FusedOpCaps, MemoryPlan, PlanGeometry};
81pub use gemma4_engine::{Gemma4Engine, Gemma4Hparams, GEMMA4_ARCHES};
82pub use kv_budget::{
83 Ceiling, ContextCap, ContextFit, KvBudget, KvBudgetError, KvElem, KvLayout, KvShape,
84 SlidingWindow, CTX_AUTO_GRANULARITY,
85};
86pub use loader::LoadError;
87pub use output_projection::grouped_output_projection;
88pub use prefix_cache::{PrefixCache, PrefixCacheStats, PrefixMatch};
89pub use sampling::{sampling_distribution, Sampler, SamplingParams};
90pub use speculative::{
91 accept_or_resample, speculative_decode, speculative_decode_with, DraftBlock, DraftDist,
92 Drafter, PromptLookupSpeculator, SpeculativeDecodeResult, SpeculativeOptions,
93};
94pub use tensor_role::TensorRole;
95pub use tokenizer::{
96 ByteTokenizer, GgufBpeTokenizer, GgufSpmTokenizer, GgufUnigramTokenizer,
97 GgufWordPieceTokenizer, NormalizerOptions, TokenizerLoadError,
98};
99
100#[cfg(feature = "metal")]
101pub use ferrox_metal::attn::{metal_greedy_argmax_active, set_metal_greedy_argmax};