# ipfrs-core
Core primitives and types for IPFRS (Inter-Planet File RUST System).
## Overview
`ipfrs-core` provides the fundamental building blocks for IPFRS, including:
- **CID (Content Identifier)**: Multihash-based content addressing
- **Block**: Raw data blocks with CID verification
- **IPLD Codec**: Serialization/deserialization for TensorLogic types
- **Error Types**: Unified error handling across all IPFRS crates
## Key Components
### CID & Multihash
- Content-addressable identifiers compatible with IPFS
- Support for multiple hash algorithms (SHA256, BLAKE3, etc.)
- Integration with `tensorlogic::ir::Term` for logic-aware addressing
### Block Management
- Immutable data blocks with cryptographic verification
- Zero-copy access patterns for performance
- Memory-safe handling with Rust ownership
### IPLD Integration
- Merkle DAG structures for content-addressable graphs
- Custom codec for TensorLogic IR serialization
- Support for Safetensors and Apache Arrow formats
## Architecture
This crate sits at the foundation of the IPFRS stack:
```
ipfrs-interface (API)
↓
ipfrs-core (Types & Primitives)
↓
## Design Principles
- **Zero-Copy**: Minimize memory allocations and data copying
- **Type Safety**: Leverage Rust's type system for correctness
- **Protocol Compatibility**: Wire-compatible with IPFS where applicable
- **TensorLogic Native**: First-class support for neural-symbolic AI types
## Dependencies
- `multihash` - Content addressing
- `cid` - CID implementation
- `serde` - Serialization framework
- `bytes` - Efficient byte buffer management
## References
- IPFRS v0.3.0 Whitepaper (Unified Strategy)
- IPLD Specification: https://ipld.io/
- Multiformats: https://multiformats.io/