You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust libp2p库报错:无法找到development_transport函数求助

问题

我的Rust代码一直报错:cannot find function development_transport in crate 'libp2p'。但在编辑器中点击导入语句查看libp2p的lib.rs文件时,明明能看到该函数。使用的libp2p版本为0.49.0,相关代码及Cargo.toml配置如下:

use libp2p::futures::StreamExt;
use libp2p::swarm::dummy::Behaviour;
use libp2p::swarm::{Swarm, SwarmEvent};
use libp2p::{identity, PeerId};
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let local_key = identity::Keypair::generate_ed25519();

    let local_peer_id = PeerId::from(local_key.public());

    println!("Local peer id is: {}", local_peer_id);

    let behaviour = Behaviour;

    let transport = libp2p::development_transport(local_key)?;

    let mut swarm = Swarm::new(transport, behaviour, local_peer_id);

    swarm.listen_on("/ip4/0.0.0.0/tcp/0".parse()?)?;

    loop {
        match swarm.select_next_some().await {
            SwarmEvent::NewListenAddr { address, .. } => {
                println!("Listening on local address {:?}", address)
            }
            _ => {}
        }
    }
}

Cargo.toml内容:

[dependencies]
libp2p = "0.49.0"
tokio = { version = "1.21.2", features = ["full"] }
解决方法
  • development_transport 函数属于libp2p的development可选特性,默认未启用,必须显式开启才能调用。
  • 修改Cargo.toml中的libp2p依赖配置,添加development特性:
[dependencies]
libp2p = { version = "0.49.0", features = ["development"] }
tokio = { version = "1.21.2", features = ["full"] }
  • 核心原因:libp2p将调试、开发类的便捷工具函数放在可选特性中,默认不编译这类代码以优化编译体积和最终二进制大小,因此使用这类函数前需要手动开启对应特性。

内容的提问来源于stack exchange,提问作者Tjardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:35:23