rust的包管理

2022-05-02 12:37:21 浏览数 (1)

通过模块进行包管理

rust通过模块管理项目,我们通过mod声明模块,使用use mod-name::xxx类似的样子使用模块。

可以通过crate::xxx 声明绝对路径,supper和self声明相对路径模块地址

如何创建包

rust使用文件作为mod,可以任意使用的mod

两种方式

  • 1 使用同名的文件
  • 2 使用mod文件

定义包的模式1代码示例

代码语言:rust复制
foo/bar.rs
foo.rs
main.rs

//bar.rs

pub struct Bar;
impl Bar {
    pub fn hi() {
        println!("hello Bar");
    }
}

//foo.rs

mod bar;
pub use self::bar::Bar;

pub fn do_foo() {
    println!("hi from foo!");
}

//main.rs
mod foo;
use foo::Bar;

fn main() {
    foo::do_foo();
    Bar::hi();
    println!("Hello, world!");
}

定义包的模式代码示例2

代码语言:txt复制
foo/f1.rs
foo/g1.rs
foo/mod.rs
main.rs

//f1.rs
pub fn ff() {
    println!("f1 func")
}

//g1.rs
pub fn gf() {
    println!("g1 func")
}
//mod.rs
pub mod g1;
pub mod f1;

//main.rs

mod foo;
use foo::f1;
use foo::g1;

fn main() {
    println!("Hello, world!");
    
    f1::ff();
    g1::gf();

}

cargo

rust的cargo类似于php的pecl,java的maven或者gradle,golang的mod,dlang的dub

创建rust项目

  • 创建rust工程rust init
  • 创建rust库rust init --lib

rust和其他语言包管理服务一样指定模块

  • features 特性
  • build-dependencies 构建时依赖
  • dependencies 依赖包

0 人点赞