rust-lang 主倉庫突破 10,0000 次 commit
截至發稿,rust-lang/rust 主倉庫爲 10,0006 次commit!!!html
k8s 的 rust 客戶端
相似於 client-go 的客戶端,能夠用 Rust 來編寫更高效的 Kubernetes 控制器!git
在過去的幾個月裏,博主使用 Rust 中編寫了不少的 kubernets 專用代碼。儘管 Kubernetes 自己是用 Go 語言編寫的,但我發現我一般能夠用 Rust 編寫更簡潔、可讀和穩定的 Kubernetes 代碼。例如,我最近在 Rust 和 Go 中編寫了功能至關的 CRD
控制器。Go 版本有 1700 多行代碼,並裝載了樣板文件和自動生成的代碼。而 Rust 版本只有127行!!!它更容易理解和調試…並且寫起來絕對更快。博文原文請看:http://technosophos.com/2019/08/07/writing-a-kubernetes-controller-in-rust.htmlgithub
GitHub 倉庫地址:https://github.com/clux/kube-rs服務器
瞭解更多請看 reddit 討論微信
Tonic: gRPC 將支持 async/await
Tonic 是一個基於 http/2 的 gRpc 實現,專一於高性能、互操做性和靈活性。Tonic 這個庫是爲了提供對異步/等待的一流支持,並做爲使用 Rust 編寫的生產系統的核心構建塊。併發
Tonic 的目標是提供更多開箱即用的工具。它已經支持許多特性,並計劃支持更多特性!如下是功能列表:異步
純 rust 實現(openssl 例外)async
經過 tonic-interop 測試互操做性工具
雙向流性能
自定義元數據
功能齊全的 HTTP/2 客戶端和基於 hyper 的服務器
基於 openssl 或 rustls 支持的 TLS
負載平衡塔供電
可靠性特性,如超時、速率限制、併發控制等
gRPC 攔截器
... 還有更多,瞭解詳情請點擊
client 端示例:
let mut client = GreeterClient::connect("http://[::1]:50051")?;
let request = Request::new(HelloRequest {
name: "hello".into(),
});
let response = client.say_hello(request).await?;
println!("RESPONSE={:?}", response);
server 端示例
#[tonic::async_trait]
impl Greeter for MyGreeter {
async fn say_hello(&self, req: Request<HelloRequest>)
-> Result<Response<HelloReply>, Status>
{
println!("Got a request: {:?}", req);
let reply = HelloReply {
message: "Zomg, it works!".into(),
};
Ok(Response::new(reply))
}
}
micromath
v0.4.0:快速、微型嵌入式的數學庫
目前支持:powf
, exp
, log10
, log2
, log
, ln
, trunc
, fract
, copysign
,瞭解更多請查看:https://crates.io/crates/micromath/0.4.0
folia:處理 FoLiA XML 格式的高性能Rust庫
關鍵詞:nlp
、xml
、text-processing
這個庫目前處於 alpha 階段,它可能已經用於讀取 FoLiA 文檔和從頭建立文檔。注意,這個庫尚未實現驗證!您必須經過運行另外一個 FoLiA 驗證器來確保您的 FoLiA 文檔是有效的,由於這個庫還不能保證生成有效的 FoLiA。
使用示例,從文件中讀取並查詢全部單詞:
extern crate folia;
use folia;
//load document from file
let doc = folia::Document::from_file(filename, folia::DocumentProperties::default()).expect("parsing folia");
//Build a query, here you can match on any attribute
let query = folia::Query::select().element(folia::Cmp::Is(folia::ElementType::Word));
//Turn the query into a specific selector
let selector = folia::Selector::from_query(&doc, &query);
//Run the selector
for word in doc.select(selector, folia::Recursion::Always) {
//print the ID and the text
println!("{}\t{}",
word.id().or(Some("No-ID")),
word.text(&folia::TextParameters::default())
);
}
瞭解更多請點擊查看
From 日報小組 @Jancd
日報訂閱地址:
獨立日報訂閱地址:
Telgram Channel
阿里雲語雀訂閱
Steemit
GitHub
社區學習交流平臺訂閱:
Rust.cc論壇: 支持rss
Rust Force: 支持rss
微信公衆號:Rust語言學習交流
本文分享自微信公衆號 - Rust語言中文社區(rust-china)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。