套件速查 – Rust
資料結構
fixedbitset:Vec<bool>,[bool],Box<[bool]>最佳化 (畢竟原本 bool 長度是 8 bit …),這個用起來比較簡單,沒事建議用這個bitvec:Vec<bool>,[bool],Box<[bool]>最佳化 (畢竟原本 bool 長度是 8 bit …),這個有更細的選項可以改,但用起來複雜得多 (有指令集最佳化,但最佳化什麼沒細看)rstar: 多維空間索引slab: 實現類似 slot 的儲存、分配觀念,用到Vec<Option<T>>時可能就是需要它smallvec: 佔用記憶體未滿 8KB 的臨時Vec,分配在 stack 上可能比分配在 heap 上快得多str_stack: 短時間內分配大量字串的合併分配方式rangemap: 範圍集,從多個範圍判斷某項資料是否在範圍內、動態增減範圍
編碼、解碼、解析、型態轉換
serde: 資料序列化、反序列化框架,包含 JSON, toml, query string 等各種格式bincode: 資料序列化、反序列化,基於 serde 框架,資料結構依賴 struct 宣告(包含順序)clap: 指令參數解析器multipart: 處理multipart/form-datamulter: async 處理multipart/form-data
資料庫
r2d2: 資料庫連線池 (同步 API)sqlx: async 資料庫 API
非同步、異步、async
mio: 整合多平臺的事件通知 API,比如 epollasync-std: async runtime, async io, …tokio: async runtime, async io, …
未分類
buf_redux: 更多功能的讀寫緩衝
可以確保緩衝達到必要的資料量後才開始處理
可快速實現可讀可寫緩衝lazy_static: 讓靜態變數初始化流程限制更少,不限於const fnonce_cell: 類似lazy_staticlibcnix: 把libc中類 Unix 系統 API 整理過的版本notify: 監視、通知檔案系統變動bumpalo: 降低高頻率 heap 分配、釋放 (存活時間短) 的開銷typed-arena: 同bumpalo,但只分配單一型態
其他整理的網站
- https://lib.rs/
Leave a Comment