Skip to main content

ma_core/ipfs/
mod.rs

1//! IPFS-relaterte APIs.
2//!
3//! Plattformuavhengig (lesesiden — alt fungerer på wasm og native):
4//! - `gateway` — [`GatewayPool`]: HTTP-transport, hedged failover, per-gateway cooldowns, timeouts.
5//! - `ttl_cache` — [`TtlCache`]: generisk positiv/negativ TTL-cache med in-flight-låser.
6//! - `gateway_resolver` — DID-dokument-resolusjon komponert av de to over.
7//! - `publish` — payload-bygging/validering for `/ma/ipfs/0.0.1`.
8//!
9//! For Kubo-spesifikke operasjoner (RPC write/pin/publish), se `crate::kubo`.
10
11pub mod gateway;
12pub mod gateway_resolver;
13pub mod publish;
14pub mod ttl_cache;
15
16pub use gateway::GatewayPool;
17pub use gateway_resolver::{DidDocumentResolver, IpfsGatewayResolver, IpnsPathResolver};
18pub use ttl_cache::{Cached, TtlCache};
19
20// Always-available APIs for building and validating IPFS requests (wasm-safe)
21pub use publish::{
22    generate_identity_publish_request, generate_ipfs_store_request, ipns_key_name_for_document,
23    ipns_key_name_for_parts, validate_identity_publish_message, validate_identity_publish_request,
24    validate_ipfs_request, IdentityPublishRequest, IpfsPublishDidResponse, IpfsStoreRequest,
25    ValidatedIdentityPublish, ValidatedIpfsStore, MA_IPNS_ALIAS_HASH_PREFIX,
26};
27
28// Native + kubo-specific publishing backend
29#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
30pub use crate::kubo::IpnsPublishOptions;
31#[cfg(all(not(target_arch = "wasm32"), feature = "kubo"))]
32pub use publish::{
33    handle_ipfs_publish, DidDocumentPublishOptions, IpfsDidPublisher, PublishedDidDocument,
34    RemotePinOptions, RemotePinStatus,
35};