Cannonball Rust 構建的 QEMU 插件的框架
Cannonball 是一個用 Rust 構建 QEMU 插件的框架!您可以在 C 語言的 QEMU TCG 插件中執行的任何操作,都可以使用cannonball。編寫以最小的開銷和盡可能多的功能運行的插件!
例子
這里提供了幾個例子!
-
jaivana
一個簡單的跟蹤器,將一組可配置的事件記錄到文件或標準輸出中。
-
mons meg
一個跟蹤器,記錄與 Jaivana 相同的事件,但使用 Tokio 在異步環境中運行跟蹤,通過 UNIX 套接字而不是匿名管道與主機進行通信。 看看它們,它們是學習如何使用這個框架的最佳方式。
安裝
安裝 只需將其添加到您的 Cargo.toml:
cannonball = "0.2.4"
J
aivana 的演示例子:https://github.com/novafacing/cannonball/tree/main/examples/jaivana
kiddb 基于 Rust 的嵌入式存儲引擎
整體設計參考LevelDB,旨在作為NewSQL數據庫的存儲引擎
-
支持嵌入式/單機存儲/遠程調用等多應用場景
-
以Kiss作為開發理念,設計以簡單而高效為主導
-
實現MVCC以支持ACID
-
性能,BenchMark 讀取吞吐量約為 Sled 的兩倍,且大數據量下的讀取順序平均延遲為 1μs 左右
-
遠程連接使用ProtoBuf實現,支持多語言通信
-
極小內存占用(占用/大量冷數據)
-
安全讀取
組件引入
kip_db = "0.1.1-alpha.0"
代碼
代碼編譯
cargo build
代碼編譯(正式環境)
cargo build --release
單元測試
cargo test
性能基準測試
cargo bench
Docker鏡像編譯
編譯鏡像
docker build -t kould/kip-db:v1 .
運行鏡像
docker run kould/kip-db:v1
直接調用(基本使用)
/// 指定文件夾以開啟一個KvStore let kip_db = LsmStore::open("/welcome/kip_db").await?; // 插入數據 kip_db.set(&b"https://github.com/KKould/KipDB", Bytes::from(&b"your star plz"[..])).await?; // 獲取數據 let six_pence = kip_db.get(&b"my deposit").await?; // 已占有硬盤大小 let just_lot = kip_db.size_of_disk().await? // 已有數據數量 let how_many_times_you_inserted = kip_db.len().await?; // 刪除數據 kip_db.remove(&b"ex girlfriend").await?; // 創建事務 let mut transaction = kip_db.new_transaction().await?; // 插入數據至事務中 transaction.set(&b"this moment", Bytes::from(&b"hope u like it"[..])); // 刪除該事務中key對應的value transaction.remove(&b"trouble")?; // 獲取此事務中key對應的value let ping_cap = transaction.get(&b"dream job")?; // 提交事務 transaction.commit().await?; // 創建持久化數據迭代器 let guard = kip_db.iter().await?; let mut iterator = guard.iter()?; // 獲取下一個元素 let hello = iterator.next_err()?; // 移動至第一個元素 let world = iterator.seek(Seek::Last)?; // 強制數據刷入硬盤 kip_db.flush().await?;
-
插件
+關注
關注
0文章
326瀏覽量
22440 -
Docker
+關注
關注
0文章
457瀏覽量
11846 -
qemu
+關注
關注
0文章
57瀏覽量
5354 -
Rust
+關注
關注
1文章
228瀏覽量
6601
原文標題:【Rust日報】2023-07-19 Cannonball -- Rust 構建的 QEMU 插件的框架
文章出處:【微信號:Rust語言中文社區,微信公眾號:Rust語言中文社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論