欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

使用rust開(kāi)發(fā)鴻蒙應(yīng)用的簡(jiǎn)單介紹

用Rust做Web開(kāi)發(fā)是怎樣的一種體驗(yàn)

大數(shù)據(jù)成為主流業(yè)務(wù),而R語(yǔ)言顯然是處理大數(shù)據(jù)的最佳工具。

利通網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,利通網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為利通上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的利通做網(wǎng)站的公司定做!

R語(yǔ)言三個(gè)優(yōu)勢(shì)原因

支持使用缺省值作為核心數(shù)據(jù)值,因而可以很容易地處理不完整的數(shù)據(jù)源,而不完整的數(shù)據(jù)源才是現(xiàn)實(shí)中最常見(jiàn)的。

可視化軟件包ggplot2將數(shù)據(jù)與繪圖分離,實(shí)現(xiàn)圖層疊加,現(xiàn)在以成為使用最廣泛的R語(yǔ)言拓展包。

頂層語(yǔ)言外殼是可定制的,程序員利用這個(gè)功能搭建了集成開(kāi)發(fā)環(huán)境比如RStudio,這使得R語(yǔ)言更易于學(xué),主要用于商業(yè)方面。

rust可以開(kāi)發(fā)分布式系統(tǒng)嗎

rust是可以開(kāi)發(fā)分布式系統(tǒng)的。

引子

構(gòu)建一個(gè)分布式系統(tǒng) 并不是一件容易的事情,我們需要考慮很多的問(wèn)題,首先就是我們的系統(tǒng)到底需要提供什么樣的功能,譬如:

一致性:我們是否需要保證整個(gè)系統(tǒng)的線性一致性,還是能容忍短時(shí)間的數(shù)據(jù)不一致,只支持最終一致性。

穩(wěn)定性:我們能否保證系統(tǒng) 7 x 24 小時(shí)穩(wěn)定運(yùn)行。系統(tǒng)的可用性是 4 個(gè) 9,還有 5 個(gè) 9?如果出現(xiàn)了機(jī)器損壞等災(zāi)難情況,系統(tǒng)能否做的自動(dòng)恢復(fù)。

擴(kuò)展性:當(dāng)數(shù)據(jù)持續(xù)增多,能否通過(guò)添加機(jī)器就自動(dòng)做到數(shù)據(jù)再次平衡,并且不影響外部服務(wù)。

分布式事務(wù):是否需要提供分布式事務(wù)支持,事務(wù)隔離等級(jí)需要支持到什么程度。

上面的問(wèn)題在系統(tǒng)設(shè)計(jì)之初,就需要考慮好,作為整個(gè)系統(tǒng)的設(shè)計(jì)目標(biāo)。為了實(shí)現(xiàn)這些特性,我們就需要考慮到底采用哪一種實(shí)現(xiàn)方案,取舍各個(gè)方面的利弊等。

后面,我將以我們開(kāi)發(fā)的分布式 Key-Value TiKV 作為實(shí)際例子,來(lái)說(shuō)明下我們是如何取舍并實(shí)現(xiàn)的。

TiKV

TiKV 是一個(gè)分布式 Key-Value store,它使用 Rust 開(kāi)發(fā),采用 Raft 一致性協(xié)議保證數(shù)據(jù)的強(qiáng)一致性,以及穩(wěn)定性,同時(shí)通過(guò) Raft 的 Configuration Change 機(jī)制實(shí)現(xiàn)了系統(tǒng)的可擴(kuò)展性。

TiKV 提供了基本的 KV API 支持,也就是通常的 Get,Set,Delete,Scan 這樣的 API。TiKV 也提供了支持 ACID 事務(wù)的 Transaction API,我們可以使用 Begin 開(kāi)啟一個(gè)事務(wù),在事務(wù)里面對(duì) Key 進(jìn)行操作,最后再用 Commit 提交一個(gè)事務(wù),TiKV 支持 SI 以及 SSI 事務(wù)隔離級(jí)別,用來(lái)滿足用戶的不同業(yè)務(wù)場(chǎng)景。

Rust

在規(guī)劃好 TiKV 的特性之后,我們就要開(kāi)始進(jìn)行 TiKV 的開(kāi)發(fā)。這時(shí)候,我們面臨的第一個(gè)問(wèn)題就是采用什么樣的語(yǔ)言進(jìn)行開(kāi)發(fā)。當(dāng)時(shí),擺在我們眼前的有幾個(gè)選擇:

Go,Go 是我們團(tuán)隊(duì)最擅長(zhǎng)的一門語(yǔ)言,而且 Go 提供的 goroutine,channel 這些機(jī)制,天生的適合大規(guī)模分布式系統(tǒng)的開(kāi)發(fā),但靈活方便的同時(shí)也有一些甜蜜的負(fù)擔(dān),首先就是 GC,雖然現(xiàn)在 Go 的 GC 越來(lái)越完善,但總歸會(huì)有短暫的卡頓,另外 goroutine 的調(diào)度也會(huì)有切換開(kāi)銷,這些都可能會(huì)造成請(qǐng)求的延遲增高。

Java,現(xiàn)在世面上面有太多基于 Java 做的分布式系統(tǒng)了,但 Java 一樣有 GC 等開(kāi)銷問(wèn)題,同時(shí)我們團(tuán)隊(duì)在 Java 上面沒(méi)有任何開(kāi)發(fā)經(jīng)驗(yàn),所以沒(méi)有采用。

C++,C++ 可以認(rèn)為是開(kāi)發(fā)高性能系統(tǒng)的代名詞,但我們團(tuán)隊(duì)沒(méi)有特別多的同學(xué)能熟練掌握 C++,所以開(kāi)發(fā)大型 C++ 項(xiàng)目并不是一件非常容易的事情。雖然使用現(xiàn)代 C++ 的編程方式能大量減少 data race,dangling pointer 等風(fēng)險(xiǎn),我們?nèi)匀豢赡芊稿e(cuò)。

當(dāng)我們排除了上面幾種主流語(yǔ)言之后,我們發(fā)現(xiàn),為了開(kāi)發(fā) TiKV,我們需要這門語(yǔ)言具有如下特性:

靜態(tài)語(yǔ)言,這樣才能最大限度的保證運(yùn)行性能。

無(wú) GC,完全手動(dòng)控制內(nèi)存。

Memory safe,盡量避免 dangling pointer,memory leak 等問(wèn)題。

Thread safe,不會(huì)遇到 data race 等問(wèn)題。

包管理,我們可以非常方便的使用第三方庫(kù)。

高效的 C 綁定,因?yàn)槲覀冞€可能使用一些 C library,所以跟 C 交互不能有開(kāi)銷。

綜上,我們決定使用 Rust,Rust 是一門系統(tǒng)編程語(yǔ)言,它提供了我們上面想要的語(yǔ)言特性,但選擇 Rust 對(duì)我們來(lái)說(shuō)也是很有風(fēng)險(xiǎn)的,主要有兩點(diǎn):

我們團(tuán)隊(duì)沒(méi)有任何 Rust 開(kāi)發(fā)經(jīng)驗(yàn),全部都需要花時(shí)間學(xué)習(xí) Rust,而偏偏 Rust 有一個(gè)非常陡峭的學(xué)習(xí)曲線。

基礎(chǔ)網(wǎng)絡(luò)庫(kù)的缺失,雖然那個(gè)時(shí)候 Rust 已經(jīng)出了 1.0,但我們發(fā)現(xiàn)很多基礎(chǔ)庫(kù)都沒(méi)有,譬如在網(wǎng)絡(luò)庫(kù)上面只有 mio,沒(méi)有好用的 RPC 框架,HTTP 也不成熟。

但我們還是決定使用 Rust,對(duì)于第一點(diǎn),我們團(tuán)隊(duì)花了將近一個(gè)月的時(shí)間來(lái)學(xué)習(xí) Rust,跟 Rust 編譯器作斗爭(zhēng),而對(duì)于第二點(diǎn),我們就完全開(kāi)始自己寫。

幸運(yùn)的,當(dāng)我們?cè)竭^(guò) Rust 那段陣痛期之后,發(fā)現(xiàn)用 Rust 開(kāi)發(fā) TiKV 異常的高效,這也就是為啥我們能在短時(shí)間開(kāi)發(fā)出 TiKV 并在生產(chǎn)環(huán)境中上線的原因。

一致性協(xié)議

對(duì)于分布式系統(tǒng)來(lái)說(shuō),CAP 是一個(gè)不得不考慮的問(wèn)題,因?yàn)?P 也就是 Partition Tolerance 是一定存在的,所以我們就要考慮到底是選擇 C - Consistency 還是 A - Availability。

我們?cè)谠O(shè)計(jì) TiKV 的時(shí)候就決定 - 完全保證數(shù)據(jù)安全性,所以自然就會(huì)選擇 C,但其實(shí)我們并沒(méi)有完全放棄 A,因?yàn)槎鄶?shù)時(shí)候,畢竟斷網(wǎng),機(jī)器停電不會(huì)特別頻繁,我們只需要保證 HA - High Availability,也就是 4 個(gè) 9 或者 5 個(gè) 9 的可用性就可以了。

既然選擇了 C,我們下一個(gè)就考慮的是選用哪一種分布式一致性算法,現(xiàn)在流行的無(wú)非就是 Paxos 或者 Raft,而 Raft 因?yàn)楹?jiǎn)單,容易理解,以及有很多現(xiàn)成的開(kāi)源庫(kù)可以參考,自然就成了我們的首要選擇。

在 Raft 的實(shí)現(xiàn)上,我們直接參考的 etcd 的 Raft。etcd 已經(jīng)被大量的公司在生產(chǎn)環(huán)境中使用,所以它的 Raft 庫(kù)質(zhì)量是很有保障的。雖然 etcd 是用 Go 實(shí)現(xiàn)的,但它的 Raft library 是類似 C 的實(shí)現(xiàn),所以非常便于我們用 Rust 直接翻譯。在翻譯的過(guò)程中,我們也給 etcd 的 Raft fix 了一些 bug,添加了一些功能,讓其變得更加健壯和易用。

現(xiàn)在 Raft 的代碼仍然在 TiKV 工程里面,但我們很快會(huì)將獨(dú)立出去,變成獨(dú)立的 library,這樣大家就能在自己的 Rust 項(xiàng)目中使用 Raft 了。

使用 Raft 不光能保證數(shù)據(jù)的一致性,也可以借助 Raft 的 Configuration Change 機(jī)制實(shí)現(xiàn)系統(tǒng)的水平擴(kuò)展,這個(gè)我們會(huì)在后面的文章中詳細(xì)的說(shuō)明。

存儲(chǔ)引擎

選擇了分布式一致性協(xié)議,下一個(gè)就要考慮數(shù)據(jù)存儲(chǔ)的問(wèn)題了。在 TiKV 里面,我們會(huì)存儲(chǔ) Raft log,然后也會(huì)將 Raft log 里面實(shí)際的客戶請(qǐng)求應(yīng)用到狀態(tài)機(jī)里面。

首先來(lái)看狀態(tài)機(jī),因?yàn)樗鼤?huì)存放用戶的實(shí)際數(shù)據(jù),而這些數(shù)據(jù)完全可能是隨機(jī)的 key - value,為了高效的處理隨機(jī)的數(shù)據(jù)插入,自然我們就考慮使用現(xiàn)在通用的 LSM Tree 模型。而在這種模型下,RocksDB 可以認(rèn)為是現(xiàn)階段最優(yōu)的一個(gè)選擇。

RocksDB 是 Facebook 團(tuán)隊(duì)在 LevelDB 的基礎(chǔ)上面做的高性能 Key-Value Storage,它提供了很多配置選項(xiàng),能讓大家根據(jù)不同的硬件環(huán)境去調(diào)優(yōu)。這里有一個(gè)梗,說(shuō)的是因?yàn)?RocksDB 配置太多,以至于連 RocksDB team 的同學(xué)都不清楚所有配置的意義。

關(guān)于我們?cè)?TiKV 中如何使用,優(yōu)化 RocksDB,以及給 RocksDB 添加功能,fix bug 這些,我們會(huì)在后面文章中詳細(xì)說(shuō)明。

而對(duì)于 Raft Log,因?yàn)槿我?Log 的 index 是完全單調(diào)遞增的,譬如 Log 1,那么下一個(gè) Log 一定是 Log 2,所以 Log 的插入可以認(rèn)為是順序插入。這種的,最通常的做法就是自己寫一個(gè) Segment File,但現(xiàn)在我們?nèi)匀皇褂玫氖?RocksDB,因?yàn)?RocksDB 對(duì)于順序?qū)懭胍灿蟹浅8叩男阅埽材軡M足我們的需求。但我們不排除后面使用自己的引擎。

因?yàn)?RocksDB 提供了 C API,所以可以直接在 Rust 里面使用,大家也可以在自己的 Rust 項(xiàng)目里面通過(guò) rust-rocksdb 這個(gè)庫(kù)來(lái)使用 RocksDB。

分布式事務(wù)

要支持分布式事務(wù),首先要解決的就是分布式系統(tǒng)時(shí)間的問(wèn)題,也就是我們用什么來(lái)標(biāo)識(shí)不同事務(wù)的順序。通常有幾種做法:

TrueTime,TrueTime 是 Google Spanner 使用的方式,不過(guò)它需要硬件 GPS + 原子鐘支持,而且 Spanner 并沒(méi)有在論文里面詳細(xì)說(shuō)明硬件環(huán)境是如何搭建的,外面要自己實(shí)現(xiàn)難度比較大。

HLC,HLC 是一種混合邏輯時(shí)鐘,它使用 Physical Time 和 Logical Clock 來(lái)確定事件的先后順序,HLC 已經(jīng)在一些應(yīng)用中使用,但 HLC 依賴 NTP,如果 NTP 精度誤差比較大,很可能會(huì)影響 commit wait time。

TSO,TSO 是一個(gè)全局授時(shí)器,它直接使用一個(gè)單點(diǎn)服務(wù)來(lái)分配時(shí)間。TSO 的方式很簡(jiǎn)單,但會(huì)有單點(diǎn)故障問(wèn)題,單點(diǎn)也可能會(huì)有性能問(wèn)題。

TiKV 采用了 TSO 的方式進(jìn)行全局授時(shí),主要是為了簡(jiǎn)單。至于單點(diǎn)故障問(wèn)題,我們通過(guò) Raft 做到了自動(dòng) fallover 處理。而對(duì)于單點(diǎn)性能問(wèn)題,TiKV 主要針對(duì)的是 PB 以及 PB 以下級(jí)別的中小規(guī)模集群,所以在性能上面只要能保證每秒百萬(wàn)級(jí)別的時(shí)間分配就可以了,而網(wǎng)絡(luò)延遲上面,TiKV 并沒(méi)有全球跨 IDC 的需求,在單 IDC 或者同城 IDC 情況下,網(wǎng)絡(luò)速度都很快,即使是異地 IDC,也因?yàn)橛袑>€不會(huì)有太大的延遲。

解決了時(shí)間問(wèn)題,下一個(gè)問(wèn)題就是我們采用何種的分布式事務(wù)算法,最通常的就是使用 2 PC,但通常的 2 PC 算法在一些極端情況下面會(huì)有問(wèn)題,所以業(yè)界要不通過(guò) Paxos,要不就是使用 3 PC 等算法。在這里,TiKV 參考 Percolator,使用了另一種增強(qiáng)版的 2 PC 算法。

這里先簡(jiǎn)單介紹下 Percolator 的分布式事務(wù)算法,Percolator 使用了樂(lè)觀鎖,也就是會(huì)先緩存事務(wù)要修改的數(shù)據(jù),然后在 Commit 提交的時(shí)候,對(duì)要更改的數(shù)據(jù)進(jìn)行加鎖處理,然后再更新。采用樂(lè)觀鎖的好處在于對(duì)于很多場(chǎng)景能提高整個(gè)系統(tǒng)的并發(fā)處理能力,但在沖突嚴(yán)重的情況下反而沒(méi)有悲觀鎖高效。

對(duì)于要修改的一行數(shù)據(jù),Percolator 會(huì)有三個(gè)字段與之對(duì)應(yīng),Lock,Write 和 Data:

Lock,就是要修改數(shù)據(jù)的實(shí)際 lock,在一個(gè) Percolator 事務(wù)里面,有一個(gè) primary key,還有其它 secondary keys, 只有 primary key 先加鎖成功,我們才會(huì)再去嘗試加鎖后續(xù)的 secondary keys。

Write,保存的是數(shù)據(jù)實(shí)際提交寫入的 commit timestamp,當(dāng)一個(gè)事務(wù)提交成功之后,我們就會(huì)將對(duì)應(yīng)的修改行的 commit timestamp 寫入到 Write 上面。

Data,保存實(shí)際行的數(shù)據(jù)。

當(dāng)事務(wù)開(kāi)始的時(shí)候,我們會(huì)首先得到一個(gè) start timestamp,然后再去獲取要修改行的數(shù)據(jù),在 Get 的時(shí)候,如果這行數(shù)據(jù)上面已經(jīng)有 Lock 了,那么就可能終止當(dāng)前事務(wù),或者嘗試清理 Lock。

當(dāng)我們要提交事務(wù)的時(shí)候,先得到 commit timestamp,會(huì)有兩個(gè)階段:

Prewrite:先嘗試給 primary key 加鎖,然后嘗試給 second keys 加鎖。如果對(duì)應(yīng) key 上面已經(jīng)有 Lock,或者在 start timestamp 之后,Write 上面已經(jīng)有新的寫入,Prewrite 就會(huì)失敗,我們就會(huì)終止這次事務(wù)。在加鎖的時(shí)候,我們也會(huì)順帶將數(shù)據(jù)寫入到 Data 上面。

Commit:當(dāng)所有涉及的數(shù)據(jù)都加鎖成功之后,我們就可以提交 primay key,這時(shí)候會(huì)先判斷之前加的 Lock 是否還在,如果還在,則刪掉 Lock,將 commit timestamp 寫入到 Write。當(dāng) primary key 提交成功之后,我們就可以異步提交 second keys,我們不用在乎 primary keys 是否能提交成功,即使失敗了,也有機(jī)制能保證數(shù)據(jù)被正常提交。

我們?yōu)槭裁从肦ust?

Rust 是一門系統(tǒng)級(jí)編程語(yǔ)言,被設(shè)計(jì)為保證內(nèi)存和線程安全,防止段錯(cuò)誤產(chǎn)生。作為系統(tǒng)級(jí)編程語(yǔ)言,它的基本理念是 “零開(kāi)銷抽象”。理論上來(lái)說(shuō),它的速度與 C/C++ 同級(jí)。Rust 可以被歸為通用的、多范式、編譯型的編程語(yǔ)言,類似 C/C++。與這兩門編程語(yǔ)言不同的是,Rust 是線程安全的!Rust 編程語(yǔ)言的目標(biāo)是,創(chuàng)建一個(gè)安全和并發(fā)的軟件系統(tǒng)。它強(qiáng)調(diào)安全性、并發(fā)和內(nèi)存控制。盡管 Rust 借用了 C/C++ 的語(yǔ)法,卻杜絕了空指針和懸掛指針,而這二者是 C/C++ 中系統(tǒng)崩潰、內(nèi)存泄露和不安全代碼的根源。

雖然 Rust 是一門系統(tǒng)級(jí)編程語(yǔ)言,但并不意味著它只能寫底層程序(操作系統(tǒng)、驅(qū)動(dòng)、工具、數(shù)據(jù)庫(kù)、搜索引擎等),它的抽象層次之高完全給人驚艷的感覺(jué),實(shí)踐證明它對(duì)問(wèn)題建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 這類超高抽象語(yǔ)言,也不是 Rust 的發(fā)展方向。Rust 力求在抽象與現(xiàn)實(shí)世界中找到一個(gè)平衡。

在向SCRY 項(xiàng)目研發(fā)負(fù)責(zé)人Peace交流時(shí),他說(shuō)到,當(dāng)時(shí)選擇Rust,主要有兩個(gè)原因:一是有高性能要求時(shí),原來(lái)好多人會(huì)選擇C/C++,現(xiàn)在多了一個(gè)Rust選擇,還解決了C/C++許多不足;二是Rust應(yīng)用在區(qū)塊鏈有成熟的參考。最后Peace給了未來(lái)使用SCRY項(xiàng)目開(kāi)源部分的學(xué)習(xí)者一些建議,“快速的學(xué)習(xí)能力,快樂(lè)地把小事做好,正確合理定義一個(gè)函數(shù)。”

Rust到底有多受歡迎呢?目前,Rust 已經(jīng)在 StackOverflow 的年度語(yǔ)言評(píng)選中,連續(xù) 4 年榮獲“程序員最喜愛(ài)語(yǔ)言”第一名(2016, 2017, 2018, 2019)。以下是 2019 年調(diào)查的截圖:

但比起Python、C、C++ 等,Rust還只是個(gè)小年輕。調(diào)查顯示,更多的人不去學(xué)習(xí) Rust 還是因?yàn)?Rust 沒(méi)有足夠的活躍商業(yè)項(xiàng)目讓它成為企業(yè)的一部分。

不過(guò),Rust 在工作中的占比也越來(lái)越高。過(guò)去一年間,Rust 在商業(yè)應(yīng)用上有著令人驚訝的成長(zhǎng)。下面是部分人們熟知的公司:

國(guó)內(nèi)的百度,阿里,也已經(jīng)在內(nèi)部小范圍的使用上了Rust。

就在本月初,微軟還推出了基于 Rust 的 Windows 運(yùn)行時(shí)項(xiàng)目 Rust/WinRT。該項(xiàng)目和 C++/WinRT 一脈相承,用標(biāo)準(zhǔn)語(yǔ)言和編譯器為 Windows 運(yùn)行時(shí)構(gòu)建語(yǔ)言投影,從而方便 Rust 開(kāi)發(fā)人員調(diào)用 Windows API,更輕松地使用 Rust 構(gòu)建各類 Windows 應(yīng)用和組件。

()

2015年下半年,Gavin Wood 博士創(chuàng)立了 Parity Technologies,推出以太坊(Ethereum)客戶端 parity,而這個(gè) parity 客戶端就是使用Rust寫的。實(shí)際在 parity 出現(xiàn)之前,MaidSafe項(xiàng)目就已經(jīng)出現(xiàn)了。MaidSafe用 Rust 語(yǔ)言嘗試了很多東西。Rust語(yǔ)言本身強(qiáng)調(diào)的安全性以及MaidSafe這些前沿項(xiàng)目,可能給了 Gavin 充分的理由選擇 Rust 作為 parity 開(kāi)發(fā)語(yǔ)言。

寫一個(gè)有效率的、符合習(xí)慣的Rust程序比寫一個(gè)有潛在危險(xiǎn)的程序容易得多。下面是Linux內(nèi)核在2018年一月到四月期間發(fā)現(xiàn)的bug:

而對(duì)于Rust而言,上圖右側(cè)占比 51% 的部分,從語(yǔ)言層面就可以避免。也就是說(shuō),對(duì)Rust來(lái)說(shuō),根本不存在上圖右邊這些問(wèn)題。

Rust在實(shí)現(xiàn)內(nèi)存安全和并發(fā)安全的同時(shí),并沒(méi)有以損失性能為代價(jià)。更牛逼的是,它甚至是用同一套抽象解決了內(nèi)存安全和數(shù)據(jù)競(jìng)爭(zhēng)這兩個(gè)不同領(lǐng)域的問(wèn)題。

Rust的零開(kāi)銷抽象讓你在享受安全性的同時(shí),又不損失性能。這正是傳統(tǒng)的程序員夢(mèng)寐以求的。

Solana的首席執(zhí)行官Anatoly Yakovenko在一段采訪中提到剛開(kāi)始項(xiàng)目的時(shí)候,他用了兩周時(shí)間使用C語(yǔ)言,但是當(dāng)用到一些外部庫(kù)的時(shí)候,還得寫makefile,手動(dòng)下載這些庫(kù),比較麻煩。所以,他決定嘗試一下Rust。就在那一刻,“Holy shit, this is amazing.”“我才覺(jué)醒到,這是一個(gè)和C語(yǔ)言一樣快的語(yǔ)言,并且還給了我Haskell般的類型安全。Rust擊中了我,這真的很酷。”

今天Rust滿5歲了(2020年5月15日,是Rust語(yǔ)言正式發(fā)布5年生日)。Rust語(yǔ)言正在IT工業(yè)各個(gè)領(lǐng)域快速發(fā)展,而由于區(qū)塊鏈本身的特質(zhì),區(qū)塊鏈領(lǐng)域是較早接納Rust的領(lǐng)域之一。在區(qū)塊鏈領(lǐng)域,Rust正以勢(shì)如破竹之勢(shì)占領(lǐng)區(qū)塊鏈新興項(xiàng)目市場(chǎng),很多著名的老項(xiàng)目也在考慮轉(zhuǎn)向使用Rust重寫。

祝Rust 5周年生日快樂(lè)!

參考:

1. Why Rust?

2. Meetup with Solana, Zcash, Parity — Why Rust Is Ideal For Blockchain Development?

3. Rust 2017 Survey Results

4. 微軟開(kāi)源 Rust/WinRT,方便使用 Rust 構(gòu)建 Windows 應(yīng)用

5. Stack Overflow’s Developer Survey Results 2019

6. 當(dāng)區(qū)塊鏈遇上Rust

本文題目:使用rust開(kāi)發(fā)鴻蒙應(yīng)用的簡(jiǎn)單介紹
URL標(biāo)題:http://www.chinadenli.net/article36/dsdeisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站企業(yè)網(wǎng)站制作響應(yīng)式網(wǎng)站小程序開(kāi)發(fā)做網(wǎng)站用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)