Skip to main content

Crate sculk

Crate sculk 

Source
Expand description

sculk:面向 Minecraft 联机的 P2P 隧道库。

基于 iroh 提供端到端加密的 QUIC 连接, 封装了 host/join 双端流程、分享 URI、事件流与自动重连能力。

§Overview

§Examples

Host 端:

use sculk::tunnel::{AccessToken, HostConfig, IrohTunnel, ServiceId};

let (_tunnel, uri, _events) = IrohTunnel::host(
    25565,
    None,
    None,
    ServiceId::generate(),
    AccessToken::generate(),
    HostConfig::default(),
).await?;
println!("share URI: {}", uri.expose_secret_uri()?);

Join 端:

use sculk::tunnel::{JoinOptions, JoinUri, TunnelService};

let uri: JoinUri = "sculk://join/v1/<payload>".parse()?;
let service = TunnelService::new();
service.start_join(JoinOptions::new(uri)).await?;

§Notes

  • HostConfig::max_players 按唯一 EndpointId 计数。
  • 分享 URI 包含当前会话访问令牌,不应写入日志或持久化配置。
  • join 侧的自动重连等待时间由 JoinConfig::reconnect_timeout 控制。
  • 简单集成优先使用 TunnelService;需要直接拥有事件接收端时使用 IrohTunnel

Re-exports§

pub use error::ErrorCategory;
pub use error::Result;
pub use error::SculkError;
pub use types::RelayUrl;
pub use types::SecretKey;

Modules§

error
core crate 统一错误类型。
minecraft
Minecraft Java 版服务探测与局域网发现支持。
tunnel
P2P 隧道:基于 iroh QUIC 的 TCP 端口转发层。
types
对 iroh 公共类型的 newtype 封装。

Constants§

DEFAULT_INLET_PORT
join 端本地入站监听端口默认值。
DEFAULT_MC_PORT
Minecraft 服务端标准端口。