pdftract/crates/pdftract-core/examples/test_lzw_api.rs
jedarden c7acac5d1f feat(pdftract-4li3d): implement security constraints for serve mode
- Add startup banner with NO AUTH warning
- Add --max-decompress-gb CLI flag (default 1 GB)
- Add hard cap for --max-upload-mb at 4096 MB (4 GiB)
- Add max_decompress_gb form field parsing
- Update CLI help text with security model documentation
- Add comprehensive security model docs to serve.rs rustdoc

This implements the security constraints required by the bead:
- No built-in authentication (deploy behind reverse proxy)
- No file-path parameters (multipart upload only)
- Hard caps to prevent integer overflow
- Visible security warnings at startup

Closes: pdftract-4li3d
2026-05-26 18:47:51 -04:00

19 lines
618 B
Rust

use lzw::{Decoder, MsbReader};
fn main() {
// Test basic encoding/decoding
let data = b"hello world!";
// Encode with LzwWriter (LSB first)
let mut encoded = Vec::new();
{
let mut encoder = lzw::LsbWriter::new(&mut encoded);
std::io::Write::write_all(&mut encoder, data).expect("Failed to write data");
}
println!("Encoded: {:02x?}", encoded);
// Decode
let mut decoder = Decoder::<MsbReader>::new(MsbReader::new(), 8);
let (consumed, decoded) = decoder.decode_bytes(&encoded).unwrap();
println!("Decoded: {:?}", std::str::from_utf8(decoded).unwrap());
}