# wireshift-core
<p align="center">
<a href="https://crates.io/crates/wireshift-core"><img src="https://img.shields.io/crates/v/wireshift-core.svg" alt="crates.io"></a>
<a href="https://docs.rs/wireshift-core"><img src="https://img.shields.io/docsrs/wireshift-core" alt="docs.rs"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT"></a>
</p>
Core primitives for wireshift - composable io_uring building blocks with safe fallback backends.
## Installation
```bash
cargo add wireshift-core
```
## Quick Example
```rust
use wireshift_core::{Buffer, Op, Result};
// Core primitives for building async I/O operations
let buffer = Buffer::new(4096);
// Use with wireshift operations...
```
## Architecture Overview
```
wireshift (facade)
├── wireshift-core (primitives, buffer lifecycle, completion routing)
├── wireshift-chain (linked operation chains)
├── wireshift-fs (filesystem operations)
├── wireshift-net (network operations)
├── wireshift-uring (io_uring backend)
└── wireshift-fallback (epoll/kqueue backend)
```
## Extension Guide
### Add a Custom Operation
```rust
use wireshift_core::{Op, OpDescriptor, CompletionPayload, Result};
pub struct MyOp;
impl Op for MyOp {
type Output = MyResult;
fn into_descriptor(self) -> Result<OpDescriptor> {
// Convert to low-level descriptor
}
fn map_completion(payload: CompletionPayload) -> Result<Self::Output> {
// Convert completion to result
}
}
```
Contributions welcome for additional backends (Windows IOCP, macOS kqueue improvements).
## License
MIT. Copyright 2026 Corum Collective LLC.