java-serialization 0.1.0

Java object serialization stream parser written in Rust
Documentation
//! Java object serialization stream parser.
//!
//! Parses Java serialization streams according to the Java Object Serialization
//! Specification. Supports all type codes (TC_OBJECT, TC_ARRAY, TC_CLASSDESC,
//! TC_ENUM, TC_PROXYCLASSDESC, etc.), block data, annotations, and handle
//! references.
//!
//! Automatically detects and handles JDK 8u20 exploit payloads that omit a
//! TC_ENDBLOCKDATA byte, retrying with the missing byte inserted.
//!
//! # Example
//!
//! ```
//! use java_serialization::parse_serialization_stream;
//!
//! // Minimal valid Java serialization stream: magic 0xACED, version 5
//! let data: &[u8] = &[0xAC, 0xED, 0x00, 0x05];
//! let (remaining, stream) = parse_serialization_stream(data).unwrap();
//! assert!(remaining.is_empty());
//! assert_eq!(stream.version, 5);
//! ```

mod constants;
mod handle;
mod parser;
mod types;

pub use parser::parse_serialization_stream;
pub use parser::preprocess_jdk8u20;
pub use types::*;

// Re-export constants for convenience
pub use constants::*;