[xactor]學(xué)習(xí)筆記--1

首先我們先看看cargo.toml文件

[package]
name = "xactor"
version = "0.7.3"
authors = ["sunli <scott_s829@163.com>"]
description = "Xactor is a rust actors framework based on async-std"
edition = "2018"
publish = true
license = "MIT"
documentation = "https://docs.rs/xactor/"
homepage = "https://github.com/sunli829/xactor"
repository = "https://github.com/sunli829/xactor"
keywords = ["actor", "futures", "async", "xactor", "async-std"]
categories = ["network-programming", "asynchronous"]
readme = "README.md"

[dependencies]
futures = "0.3.4"
async-trait = "0.1.24"
async-std = { version = "1.5.0", features = ["attributes"], optional = true }
tokio = { version = "0.2", features = ["rt-threaded", "macros", "blocking", "time"], optional = true }
once_cell = "1.3.1"
anyhow = "1.0.26"
xactor-derive = { path = "xactor-derive", version = "0.7.0"}
fnv = "1.0.6"
slab = "0.4.2"

[workspace]
members = [
    "xactor-derive"
]

[features]
runtime-tokio = ["tokio"]
runtime-async-std = ["async-std"]

default = ["runtime-async-std"]

package 部分

首先感謝 作者 sunli 同學(xué)的無私貢獻(xiàn)囊颅。
然后其他無視 嘿嘿

dependencies 部分

futures

Zero-cost asynchronous programming in Rust
零成本異步編程

async-trait

異步特性

async-std

異步的std

tokio

A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language. 異步運(yùn)行時(shí)

once_cell

OnceCell可以存儲(chǔ)任意的非復(fù)制類型瞳浦,最多可以分配給一次就斤,并提供對(duì)存儲(chǔ)內(nèi)容的直接訪問呢撞。

anyhow

這個(gè)庫提供anyhow::Error溪厘,這是一種基于trait對(duì)象的錯(cuò)誤類型狮鸭,用于在Rust應(yīng)用程序中輕松地進(jìn)行慣用錯(cuò)誤處理合搅。

fnv

FNV哈希函數(shù)是一個(gè)自定義哈希器實(shí)現(xiàn),對(duì)于較小的哈希鍵更有效歧蕉。
Rust FAQ指出灾部,雖然默認(rèn)的Hasher實(shí)現(xiàn)SipHash在很多情況下都很好,但它明顯比其他短鍵的算法慢惯退,比如當(dāng)你有一個(gè)整數(shù)到其他值的映射時(shí)赌髓。在這種情況下,F(xiàn)NV顯然更快。
它的缺點(diǎn)是锁蠕,它在較大的輸入上執(zhí)行得很差夷野,并且沒有提供防止碰撞攻擊的保護(hù),在碰撞攻擊中荣倾,惡意的用戶可以設(shè)計(jì)特定的密鑰來減慢碰撞器的速度悯搔。因此,配置您的程序以確保您使用的是小散列鍵舌仍,并確保您的程序不會(huì)暴露給惡意輸入(包括作為一個(gè)網(wǎng)絡(luò)服務(wù)器)是很重要的妒貌。
Rust編譯器本身使用FNV,因?yàn)樗粨?dān)心拒絕服務(wù)攻擊抡笼,并且可以假設(shè)它的輸入很小——這是FNV的一個(gè)完美用例苏揣。

slab

無視這個(gè)吧。

xactor-derive

我們基本上都了解這些庫干啥用的了推姻。

xactor起源

features部分

[features]
runtime-tokio = ["tokio"]
runtime-async-std = ["async-std"]
default = ["runtime-async-std"]

其實(shí)就是使用哪個(gè)運(yùn)行時(shí)平匈。

基本上就是這樣了。那么接著我們開始去看入口文件 /src/lib.rs
只復(fù)制粘貼核心代碼藏古,其他說明沒有復(fù)制增炭。

#![allow(clippy::type_complexity)]  //lint的過濾 

mod actor;
mod addr;
mod broker;
mod caller;
mod context;
mod runtime;
mod service;
mod supervisor;

/// Alias of anyhow::Result
pub type Result<T> = anyhow::Result<T>;

/// Alias of anyhow::Error
pub type Error = anyhow::Error;
pub use actor::{Actor, Handler, Message, StreamHandler};
pub use addr::Addr;
pub use broker::Broker;
pub use caller::{Caller, Sender};
pub use context::Context;
pub use runtime::{block_on, sleep, spawn, timeout};
pub use service::{LocalService, Service};
pub use supervisor::Supervisor;
pub use xactor_derive::{main, message};

上面我看到第一行

![allow(clippy::type_complexity)]

真心看不懂,搜了一下拧晕。需要先看看 clippy
哦 原來過濾檢查語法用的隙姿。

然后就是引用 mod 和 pub 出去對(duì)應(yīng)的一些type。

下班 下班 喝酒喝酒

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厂捞,一起剝皮案震驚了整個(gè)濱河市输玷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌靡馁,老刑警劉巖欲鹏,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異臭墨,居然都是意外死亡赔嚎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門胧弛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尤误,“玉大人,你說我怎么就攤上這事结缚∷鹞睿” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵红竭,是天一觀的道長沉馆。 經(jīng)常有香客問我码党,道長,這世上最難降的妖魔是什么斥黑? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任揖盘,我火速辦了婚禮,結(jié)果婚禮上锌奴,老公的妹妹穿的比我還像新娘兽狭。我一直安慰自己,他們只是感情好鹿蜀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布箕慧。 她就那樣靜靜地躺著,像睡著了一般茴恰。 火紅的嫁衣襯著肌膚如雪颠焦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天往枣,我揣著相機(jī)與錄音伐庭,去河邊找鬼。 笑死分冈,一個(gè)胖子當(dāng)著我的面吹牛圾另,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雕沉,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼集乔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了坡椒?” 一聲冷哼從身側(cè)響起扰路,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倔叼,沒想到半個(gè)月后汗唱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缀雳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年渡嚣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梢睛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肥印。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绝葡,靈堂內(nèi)的尸體忽然破棺而出深碱,到底是詐尸還是另有隱情,我是刑警寧澤藏畅,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布敷硅,位于F島的核電站功咒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绞蹦。R本人自食惡果不足惜力奋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望幽七。 院中可真熱鬧景殷,春花似錦、人聲如沸澡屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驶鹉。三九已至绩蜻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間室埋,已是汗流浹背办绝。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留词顾,地道東北人八秃。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像肉盹,于是被迫代替她去往敵國和親昔驱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353