Skip to main content

smolder_proto/
lib.rs

1//! Typed SMB2/3 and DCE/RPC wire codecs for Smolder.
2//!
3//! `smolder-proto` is the lowest layer in the Smolder workspace. It provides
4//! packet structures, framing helpers, codec logic, and validation primitives
5//! without taking on transport, session, or operator workflow concerns.
6//!
7//! Crate layout:
8//!
9//! - [`smb`]: SMB2/3 headers, request/response bodies, negotiate contexts,
10//!   create contexts, transform headers, status codes, and framing helpers.
11//! - [`rpc`]: DCE/RPC packet types, bind/request/response PDUs, and auth
12//!   trailer codecs used on top of SMB named pipes.
13//! - [`prelude`]: lightweight common exports for callers that want a smaller
14//!   import surface.
15//!
16//! Higher layers live in:
17//!
18//! - `smolder-smb-core`: transport, auth/session, signing, encryption, named
19//!   pipes, and RPC primitives
20//! - `smolder`: high-level file APIs, remote execution, and CLI workflows
21//!
22//! # Start here
23//!
24//! Reach for this crate when you need a safe wire-model layer. If you want a
25//! ready-to-use SMB/RPC client instead of raw packet types, start with
26//! `smolder-smb-core`.
27//!
28//! Supporting project docs:
29//!
30//! - support policy:
31//!   [docs/reference/support-policy.md](/Users/cmagana/Projects/smolder/docs/reference/support-policy.md)
32//! - fuzzing/property coverage:
33//!   [docs/testing/fuzzing.md](/Users/cmagana/Projects/smolder/docs/testing/fuzzing.md)
34//! - benchmark harness:
35//!   [docs/testing/benchmarks.md](/Users/cmagana/Projects/smolder/docs/testing/benchmarks.md)
36//!
37//! Copyright (c) 2025 M00NLIG7
38
39#![forbid(unsafe_code)]
40#![warn(missing_docs)]
41
42pub mod prelude {
43    //! Common types and traits
44}
45
46/// RPC protocol modules.
47pub mod rpc;
48
49/// SMB protocol modules.
50pub mod smb;