hadris 1.1.0

A collection of crates for working with various file formats.
Documentation
# Hadris

A Rust workspace for working with partition tables, filesystems, and disk images. Designed for no-std compatibility, embedded systems, and bootloaders.

## Workspace Crates

### Core Libraries

- **[hadris-io]crates/hadris-io** - No-std I/O abstraction layer (Read, Write, Seek traits)
- **[hadris-common]crates/hadris-common** - Shared utilities (endian types, CRC, UTF-16 strings)

### Partition Tables

- **[hadris-part]crates/hadris-part** - Partition table support
  - MBR (Legacy BIOS partition tables)
  - GPT (Modern UEFI partition tables)
  - Hybrid MBR (Combined MBR+GPT for dual BIOS/UEFI boot)

### Filesystems

- **[hadris-iso]crates/hadris-iso** - ISO 9660 filesystem implementation
  - ISO 9660 Level 1-3 and ISO 9660:1999 (long filenames)
  - Joliet extension (UTF-16 Unicode filenames)
  - Rock Ridge (RRIP) and SUSP (POSIX semantics, symlinks)
  - El-Torito bootable CD/DVD images

- **[hadris-fat]crates/hadris-fat** - FAT filesystem implementation
  - FAT12, FAT16, FAT32 support
  - Long filename support (VFAT/LFN)
  - FAT sector caching for performance
  - Analysis and verification tools
  - ExFAT support (experimental)

### CLI Tools

- **[hadris-iso-cli]crates/hadris-iso-cli** - Command-line tool for ISO operations
- **[hadris-fat-cli]crates/hadris-fat-cli** - Command-line tool for FAT operations
- **[hadris-cli]crates/hadris-cli** - General-purpose disk utility CLI (WIP)

### Meta-crate

- **[hadris]crates/hadris** - Re-exports all filesystem implementations

## Key Features

- **No-std compatible** - Use in bootloaders, kernels, and embedded systems
- **Configurable** - Feature flags for read-only, write support, and extensions
- **Comprehensive** - Support for multiple partition schemes and filesystem extensions
- **Standards compliant** - Follows ECMA-119, IEEE P1282, El-Torito, and Microsoft FAT specifications

## Quick Start

Add dependencies to your `Cargo.toml`:

```toml
[dependencies]
hadris-iso = "0.2"
hadris-fat = "0.3"
hadris-part = "0.2"
```

For no-std environments:

```toml
[dependencies]
hadris-iso = { version = "0.2", default-features = false, features = ["read"] }
hadris-fat = { version = "0.3", default-features = false, features = ["read"] }
```

## Building

```bash
# Build entire workspace
cargo build --workspace

# Run tests
cargo test --workspace

# Build for no-std (example)
cargo build -p hadris-fat --no-default-features --features "read"
```

See [CLAUDE.md](CLAUDE.md) for detailed build instructions and architecture notes.

## License

Licensed under the [MIT license](LICENSE-MIT).