Expand description
sculk:面向 Minecraft 联机的 P2P 隧道库。
基于 iroh 提供端到端加密的 QUIC 连接,
封装了 host/join 双端流程、票据编码、事件流与自动重连能力。
§Overview
tunnel::IrohTunnel:创建 host 或 join 隧道。tunnel::Ticket:sculk://连接票据(可序列化分享)。tunnel::HostConfig/tunnel::JoinConfig:分端配置。tunnel::TunnelEvent:运行时状态与错误事件。
§Examples
Host 端:
use sculk::tunnel::{IrohTunnel, HostConfig};
let (_tunnel, ticket, mut events) =
IrohTunnel::host(25565, None, None, HostConfig::default()).await?;
println!("share ticket: {ticket}");
while let Some(event) = events.recv().await {
println!("{event:?}");
}Join 端:
use sculk::tunnel::{IrohTunnel, Ticket, JoinConfig};
let ticket: Ticket = "sculk://<endpoint-id>".parse()?;
let (_tunnel, mut events) = IrohTunnel::join(&ticket, 30000, JoinConfig::default()).await?;
while let Some(event) = events.recv().await {
println!("{event:?}");
}§Notes
HostConfig::max_players按唯一EndpointId计数。- 密码是应用层校验,不替代传输层加密。
join侧是否自动重连由JoinConfig::max_retries控制。
Re-exports§
pub use error::Result;pub use error::SculkError;pub use types::RelayUrl;pub use types::SecretKey;
Modules§
Constants§
- DEFAULT_
INLET_ PORT - join 端本地入站监听端口默认值。
- DEFAULT_
MC_ PORT - Minecraft 服务端标准端口。