010 Rust網路程式設計,cargo構建指令碼介紹

2021-10-05 21:49:34 字數 1137 閱讀 1104

此章節並不是只有rust網路程式設計的內容,但是由於後續的例子有些依賴於此知識點,所以放在rust網路程式設計系列中做簡單介紹。參考資料主要是官方文件《cargo之書》。

在實際的專案中,有些包需要編譯第三方非rust**,例如 c庫;有些包需要鏈結到 c庫,當然這些庫既可以位於系統上,

也可以從源**構建。其它的需求則有可能是需要構建**生成 。

在cargo中,提供了構建指令碼,來滿足這些需求。

指定的build命令應執行的rust檔案,將在包編譯其它內容之前,被編譯和呼叫,從而具備rust**所依賴的構建或生成的元件。build通常被用來:

功能:生成**(rust模組)。

[package]

...build = "build.rs

.

├── cargo.toml

├── build.rs

└── src

└── main.rs

use std::env;

use std::fs::file;

use std::io::write;

use std::path::path;

fn main()

").unwrap();

}

include!(concat!(env!("out_dir"), "/hello.rs"));

fn main() ", message());

}

hello, world!
功能:編譯c**,然後由rust呼叫。

[package]

# ---snip---

build = "build.rs

# ---snip---

[build-dependencies]

cc = "1.0

extern crate cc;

fn main()

extern 

fn main()

}

hello, world!

012 Rust 網路程式設計,gRPC 演示示例

本例子的功能為grpc客戶端向服務端寫入位置資訊和讀取位置資訊,演示環境為ubuntu。安裝protobuf編譯器 apt install protobuf compilercargo new use grpc lib 記住這個名字use grpc,因為在編寫 的時候要用在use grpc目錄下,建...

018 Rust 網路程式設計,TFTP 使用示例

本例子用rust程式實現乙個tftp server,然後使用tftp客戶端進行測試。cargo new use tftp dependencies tftp server 0.0.3 use tftp server server tftpserverbuilder use std net socke...

Rust 併發程式設計 Thread Pool

在併發程式設計領域,乙個非常讓程式設計師興奮,感到有成就感的事情就是做效能優化,譬如發現某個執行緒成為了單點瓶頸,然後上多執行緒。提到了上多執行緒,那自然就會引入 thread pool,也就是我們通常說的執行緒池,我們會將任務扔給執行緒池,然後執行緒池裡面自己會負責將任務派發到不同的執行緒去執行,...