av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

你應該嘗試的12個殺手級Rust庫

我剛剛在我的一個較大的Rust項目中跨越了20K LOC,我想暫停一下并分享一些我所使用的偉大的Rust庫。

我還計劃在未來的文章中討論一些話題,比如在Rust與Go之間做決定,或者決定是否為你的團隊或項目采用Rust,以及在你決定接受它之后應該期待什么。

Clap

用Rust構建CLI工具是天作之合--看看ripgrep和Rust自己的Cargo。超快的啟動時間,較小的二進制大小,類型安全的代碼,運行時安全的二進制,交叉編譯到你可能想要的幾乎所有架構。

要開始構建CLI工具,clap是一個非常棒的CLI庫,它是如此之好,我不認為有任何理由像其他語言中常見的那樣有一打替代品。事實上,如果你想嘗試Rust,我建議先看看rustup,然后試試這個庫,看看它能給你帶來什么。

Serde

和clap一樣,serde是一個功能豐富、性能卓越的通用序列化庫。事實上,想想Java和.NET,我不記得有哪個序列化庫從各方面都做得這么好--人體工程學和性能。

不要自己嘗試從/向文件讀/寫,相反--先寫好你的數(shù)據(jù)類型,讓serde做所有的工作。作為獎勵,你可以在一切完成后混合和匹配數(shù)據(jù)格式(YAML、JSON)。

Reqwest

Reqwest遵循HTTP客戶端庫的黃金標準,如request、superagent和requests,并將其完美地應用于Rust。它是我的HTTP客戶端的首選庫,功能豐富且完整。

Rayon

Rayon是一個 "Rust的數(shù)據(jù)并行庫",簡單地說,給它數(shù)據(jù),它就知道如何把它分割成獨立的塊,讓你所有的CPU核心工作。

或者更簡單地說,給它一個列表,它就會在上面并行化映射,還有其他功能。這對CLI工具非常有用;不是所有的語言都能在命令行上實現(xiàn)并行化。

Slog

slog是一個非常完整的Rust日志套件。它是一個核心,后面有很多插件,比如終端輸出的term,JSON輸出的json等等。

你應該知道,還有l(wèi)og,它的目標是成為標準Rust的一部分,是一個更簡單的選擇。出于這個原因,我個人已經(jīng)從slog轉(zhuǎn)到了log。

itertools

在你的列表上多加幾個運算符也無妨,尤其是許多或大多數(shù)運算符是零成本的。有了itertools,你就可以得到這些。如果你是一個像lodash這樣的庫的粉絲,那就太好了。

Hyper

hyper是一個用Rust編寫的快速HTTP實現(xiàn),也是為Rust編寫的(相對于那些用C編寫的,涵蓋了動態(tài)語言的性能)。你會發(fā)現(xiàn)hyper幾乎出現(xiàn)在你使用的所有高級庫中,如果你直接使用它,感覺有點像Netty或Finagle。我發(fā)現(xiàn)自己既把hyper當作一個HTTP工具箱(使用其中的部分),也把它當作一個整體,在它上面建立一個服務器。

猜猜看,什么東西不使用Hyper?是Actix。Actix試圖變得更簡單,從我的經(jīng)驗來看--它能做到。我經(jīng)常使用Actix而不是Hyper,因為它更高級,對于服務的目的來說,更成熟。今天,我默認直接使用Actix而不是Hyper,除非我需要建立一些低級別的東西,或者有一個直接需要Hyper的庫(有很多)。

PyO3

PyO3是在Python中構建Rust庫(或者說是Rust中的Python庫? )的比較流行的庫之一。如果你想看看這種混合的結果,這里有hyperjson--一個由Rust的serde支持的Python的JSON庫。

依靠Rust的安全性和Serde的性能,你幾乎不費吹灰之力就得到了一個安全的、最快的Python JSON庫之一。

想在3個步驟中改進Python嗎?

  • 找到一個偉大的Rust 庫
  • 用PyO3包住它
  • 注意:PyO3(可能還有rust-cpython)可能有一些設計缺陷,可能會放棄安全。

proptest

proptest是Rust的一個基于屬性的測試庫。自從我在短暫的Haskell工作中使用QuickCheck后,我就在我使用的每一種語言中尋找這類庫--這些庫提出它們會通過智能地思考一組輸入數(shù)據(jù)來自動為你找到一個失敗的測試案例,使你的代碼陷入困境。

libloading

對于那些想把Go或其他c-lib庫混入Rust前端的人來說,libloading使其變得簡單。

在過去的一年里,我用Rust構建了大中型項目,我接受Rust生態(tài)系統(tǒng)的某些部分還沒有準備好,并且不吝于用其他語言(主要是Go)來構建這些項目--只是用libloading把所有東西都掛回Rust中。

性能

最后你應該知道的是,干凈、簡單的Rust在默認情況下是非??斓摹_@里有一個關于正確時間的談話。

還有幾個我?guī)缀跻恢毕矚g使用的庫,它們在Rust已經(jīng)提供的默認情況下給你帶來了不錯的性能提升。

  • regex - 一個Regex庫,速度真的很快,包括與其他編程語言相比。
  • jemalloc - 最快的內(nèi)存分配器之一,在最近的Rust版本中被放棄了,轉(zhuǎn)而使用操作系統(tǒng)的默認值。我發(fā)現(xiàn)它比OSX的默認分配器更快,但只有在你知道你需要它的時候才使用它,因為它給你的二進制文件增加了一些重量(大約700kb)。

摘要

Rust,用一個詞來形容就是--強大。

但還有很多話要說。例如--與其他編程語言相比,Rust也是極其年輕的。


分享題目:你應該嘗試的12個殺手級Rust庫
當前鏈接:http://uogjgqi.cn/article/cdgddce.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流