iT邦幫忙

rust相關文章
共有 322 則文章
鐵人賽 Software Development DAY 23

技術 [Day 22] 種下一棵有用的樹

今天我們要來看的是 Binary Search Tree (BSTs)。Tree 是由有限節點組成具有層次關係的集合。以下圖為例,最上面的節點稱作根節點 (Ro...

鐵人賽 Software Development DAY 12
從 Rust 往程式底層前進 系列 第 21

技術 動態連結

動態連結是讓程式能載入動態函式庫,這些函式庫在 Linux 下一般都是以 .so 的副檔名做結尾,這些檔案能在程式執行起來後才由動態連結器載入程式的記憶體空間供...

30 天深入淺出 Rust 系列 第 33

技術 番外 3 : Rust 2018, const fn & inline asm

就在昨天 Rust 2018 第一個正式版出來了,距離上次發文也有點時間了,其它功能大部份都在之前已經先介紹過了,不過這次的 1.31 版還有個重要的功能,那就...

鐵人賽 Software Development DAY 15
30 天深入淺出 Rust 系列 第 15

技術 Cell 與 RefCell

Cell 與 RefCell 能讓變數沒宣告 mut 也能修改,因為有時你還是需要在有多個 borrow 的情況下能修改變數,它們的文件都在 std::cell...

鐵人賽 Software Development DAY 9
30 天深入淺出 Rust 系列 第 9

技術 列舉、解構、模式比對

列舉 (Enum) 列舉是 Rust 中的一個型態,其為多個 variant 所組成: enum Color { Red, Green, Blue,...

鐵人賽 Software Development DAY 2

技術 Rust 簡介

在介紹 Rust 以前要先來談談為什麼用 Rust ,Rust 雖說是一個相對算新的語言,跟以往介紹系統運作所使用的 C 比較來的話,不過 Rust 背後有個強...

鐵人賽 自我挑戰組 DAY 4

技術 [Day 4] Rust 介紹 重頭戲登場!

上一篇介紹了 WebAssembly 既然都要學編譯式語言不如就來學 Rust 吧! Rust 的緣起 首先來一段 Mozilla 官方的說明 Rust 是...

從 Rust 往程式底層前進 系列 第 25

技術 執行緒與 TLS

這篇來談談執行緒 (thread) 與 thread local storage (TLS) ,雖說是這樣,但事實上主要是想來看看 TLS 是怎麼運作的,不過在...

鐵人賽 Software Development DAY 1
30 天深入淺出 Rust 系列 第 1

技術 Overview

這是我第一次參加鐵人賽,因為平常比較沒有分享文章的習慣,就想趁這個機會讓自己多寫一點文章,同時介紹一下這個之前意外讓我入坑,很有趣的一個程式語言 Rust 。...

鐵人賽 Software Development DAY 23
30 天深入淺出 Rust 系列 第 23

技術 實作 Python 的原生擴充與條件編譯

Python 是個廣泛使用的腳本語言,想必或多或少都有聽過這個名字吧,人工智慧、科學計算、統計、應用程式、爬蟲等等的領域無不存在,非常的實用,如果想學個腳本語言...

鐵人賽 Software Development DAY 6
30 天深入淺出 Rust 系列 第 6

技術 Lifetime: Borrow 的存活時間

Rust 有個重要的功能叫 borrow checker ,它除了檢查在上一篇提到的規則外,還檢查使用者會不會使用到懸空參照 (dangling referen...

技術 RISC-V on Rust 從零開始(7) - 實作指令基本框架

使用Spike執行RISC-V gnu toolchain編譯出來的ELF檔,就可以得到完整執行此EFL檔需要用到哪些指令。利用script統計後可以得到如下結...

鐵人賽 Software Development DAY 21

技術 [Day 20] 把東西給我排好

今天我們要來談談 Sorting,也就是排序。排序看似不起眼,但其實在電腦的世界扮演了許多關鍵的角色,例如當我們要更有效率地搜尋出某個東西的時候,又例如我們要按...

鐵人賽 Software Development DAY 17
30 天深入淺出 Rust 系列 第 17

技術 更多的執行緒: Atomic 、 Channel 與 Crossbeam

今天要來介紹 Atomic 與 Channel ,另外還會介紹 crossbeam 這個 crate 。 這篇的範例也都請在自己的電腦上測試。 Atomic...

鐵人賽 Software Development DAY 17

技術 談談 Servo 專案

本系列目錄 《來做個網路瀏覽器吧!》文章列表 前言 什麼是 Servo? Servo 是一款專為應用軟體和嵌入式應用而設計的現代化的高效能瀏覽器引擎 緣...

鐵人賽 Software Development DAY 20
30 天深入淺出 Rust 系列 第 20

技術 Crates 與工具

這篇主要是來介紹 Rust 的社群所提供的方便的工具與 crate ,為避免重覆,若之後有打算深入介紹的我就不在這邊做介紹了。 工具 Clippy Clippy...

鐵人賽 Software Development DAY 11
30 天深入淺出 Rust 系列 第 11

技術 錯誤處理

現在大多的程式語言都有例外 (exception) ,這讓程式碰到錯誤時可以立即的拋出例外,拋出的例外會中斷目前整個程式的流程,並開始往上找例外處理的程式,可是...

從 Rust 往程式底層前進 系列 第 26

技術 ptrace

這篇要來介紹一個很強大的系統呼叫 ptrace 它可以用來中斷別的程式,讀取與寫入別的程式的資料,它的用途基本上就是拿來實作除錯器,當然除錯器並不是只要能暫停程...

鐵人賽 Software Development DAY 22
30 天深入淺出 Rust 系列 第 22

技術 從 C 呼叫 Rust

這次的程式碼在 https://github.com/DanSnow/rust-intro/tree/master/clib 建立可以給 C 使用的函式庫 Ru...

鐵人賽 Software Development DAY 1

技術 [Day 0] 最經典的起手式!

始 不知道大家有沒有看過有一本書叫做 seven languages in seven weeks,這本書是希望能夠讓你用七週的時間,每個禮拜都能夠去認識一門新...

鐵人賽 Software Development DAY 3

技術 列舉 (Enum)

Rust 中的列舉是 Rust 一個強大的功能,它跟 C 的列舉最大的不同是,它可以帶有資料 enum Foo { A(i32), B { a:...

鐵人賽 Software Development DAY 12
從 Rust 往程式底層前進 系列 第 19

技術 unwind 與 backtrace

是說在之前介紹到的 libunwind ,因為它有讀取 frame 資訊的功能,實際上還有個很有用的用途,顯示 backtrace ,另外在 Rust 發生 p...

鐵人賽 自我挑戰組 DAY 21

技術 [Day 21] Rust Actix PART2

大家好,今天要來優化我們之前做的專案,並且替他加上和 DB 連線的功能,那麼首先我們先來調整一下原本的 main 這支程式還有我們的專案架構, 添加 Log 對...

鐵人賽 Software Development DAY 27
30 天深入淺出 Rust 系列 第 27

技術 非同步 IO : Futures 與 Tokio

Async IO 在開始之前要先來介紹一下非同步的 IO 是怎麼回事,如果你有碰過比較底層的系統程式,你可能會知道在 Linux 下用來開啟檔案的 open 有...

鐵人賽 Software Development DAY 16
30 天深入淺出 Rust 系列 第 16

技術 程序與執行緒

偶爾我們要呼叫外部的程式來幫我們處理一些東西,這個時候就是 std::process 下的東西登場的時候了。 Command Command 可以讓我們呼叫外部...

鐵人賽 Software Development DAY 26
30 天深入淺出 Rust 系列 第 26

技術 用 Rust 做個留言板

這次的程式碼一樣在: https://github.com/DanSnow/rust-intro/tree/master/message-board 今天要來把...

技術 RISC-V on Rust 從零開始(1) - 安裝 Rust 環境

工作之餘興起開發side project的念頭,幾經思考後決定以Rust語言撰寫一個基本的RISC-V模擬器,這兩項技術之前都從未接觸,是個學習新知的好機會。...

30 天深入淺出 Rust 系列 第 32

技術 番外 2: 不使用標準函式庫行不行?

Rust 的基本函式庫其實包的東西算很少了,不過還是挺大的,因為 Rust 的標準函式庫並沒有預裝在各個電腦上,所以 Rust 都是直接把必要的部份也直接包含進...

鐵人賽 Software Development DAY 14
30 天深入淺出 Rust 系列 第 14

技術 智慧指標 (Smart Pointer) 與集合型態 (Collection)

集合型態 這邊介紹的集合型態只會再介紹 HashMap 與 HashSet ,不過 Rust 實際上並不只這兩種而已,詳細建議看一下 std::collecti...

鐵人賽 Software Development DAY 13
30 天深入淺出 Rust 系列 第 13

技術 函數式程式設計

函數式程式設計的概念是來於數學上的函數,也就是一個輸入對應一個結果,不會受到其它東西的影響,所以程式講究沒有狀態,沒有副作用 (side effect) ,而在...