ferripfs-config 0.1.0

IPFS node configuration types, compatible with Kubo config format
Documentation
# ferripfs-config

IPFS node configuration types, compatible with Kubo's config format.

> **Note**: This crate is part of [ferripfs]https://codeberg.org/dpp/ferripfs, a Rust port of [Kubo]https://github.com/ipfs/kubo (the Go IPFS implementation). The configuration format matches [Kubo's config documentation]https://github.com/ipfs/kubo/blob/master/docs/config.md.

## Features

- **Full Kubo Compatibility**: Same JSON config format as Kubo
- **Type-Safe Access**: Strongly typed configuration sections
- **Validation**: Config validation with helpful error messages
- **Key-Value Access**: Get/set values by dot-separated paths

## Usage

```rust
use ferripfs_config::Config;

// Parse configuration
let config = Config::parse(json_string)?;

// Access typed fields
println!("Peer ID: {}", config.identity.peer_id);
println!("API Address: {:?}", config.addresses.api);

// Get/set by key path
let value = config.get_key("Swarm.ConnMgr.HighWater");
config.set_key("Gateway.HTTPHeaders.Access-Control-Allow-Origin", json!(["*"]))?;

// Validate configuration
let warnings = config.validate()?;
```

## Configuration Sections

- `Identity` - Node identity (PeerID, private key)
- `Addresses` - API, Gateway, Swarm addresses
- `Datastore` - Storage backend configuration
- `Swarm` - Connection manager settings
- `Bootstrap` - Initial peers to connect to
- `Gateway` - HTTP gateway settings
- `Routing` - DHT and content routing
- `Pinning` - Remote pinning services

## License

Dual-licensed under MIT and Apache-2.0.