@rust

動態 列表
@wJiang

【實戰】深入淺出 Rust 併發:RwLock 與 Mutex 在 Tauri 項目中的實踐

引言 你是否遇到過 Rust 併發場景下的資源競爭、性能瓶頸? 當多個線程同時抓取網頁導致 IP 被封、多線程讀寫本地數據引發一致性問題時,如何優雅地實現線程安全? 本文結合開源項目 Saga Reader 的真實開發場景,深度解析 Arc/Mutex/RwLock 的實戰技巧,帶你從 “踩坑” 到 “優化”,掌握 Rust 併發編程的核心方法論,文末附項目地址,歡迎 star 交流!

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@wJiang

【實戰】Rust與前端協同開發:基於Tauri的跨平台AI閲讀器實踐

一、背景與目標:為什麼做一個“非典型”的RSS閲讀器? 在信息爆炸的時代,RSS依然是高效獲取結構化內容的重要方式,但市面上主流閲讀器要麼功能冗餘(如集成社交屬性),要麼技術棧陳舊(依賴Electron導致內存佔用高、性能差)。我們希望打造一款簡約輕量、高效率、高性能、隱私安全的RSS閲讀器,核心需求包括: 智庫情報引擎:支持基於搜索引擎的信息抓取與RSS源訂閲。 由AI驅動的特色能力:自動

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@czy

Rust中使用RocksDB索引進行高效範圍查詢的實踐指南

在當今海量數據處理場景下,高效的範圍查詢能力成為許多系統的關鍵需求。RocksDB作為一款高性能的嵌入式鍵值存儲引擎,其獨特的LSM樹結構和索引設計為範圍查詢提供了底層支持。本文將深入探討如何在Rust中利用RocksDB的特性來實現高效範圍查詢,從鍵的設計原則到迭代器的工程實踐,再到性能優化的實戰技巧。無論您是正在構建時序數據庫、構建搜索引擎,還是處理用户事件流,這些技術都能幫助您在保證數據一致

czy 頭像

@czy

昵稱 涵樹

@wJiang

【實戰】深入淺出 Rust 併發:RwLock 與 Mutex 在 Tauri 項目中的實踐

引言 你是否遇到過 Rust 併發場景下的資源競爭、性能瓶頸? 當多個線程同時抓取網頁導致 IP 被封、多線程讀寫本地數據引發一致性問題時,如何優雅地實現線程安全? 本文結合開源項目 Saga Reader 的真實開發場景,深度解析 Arc/Mutex/RwLock 的實戰技巧,帶你從 “踩坑” 到 “優化”,掌握 Rust 併發編程的核心方法論,文末附項目地址,歡迎 star 交流!

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@wJiang

【實戰】Rust與前端協同開發:基於Tauri的跨平台AI閲讀器實踐

一、背景與目標:為什麼做一個“非典型”的RSS閲讀器? 在信息爆炸的時代,RSS依然是高效獲取結構化內容的重要方式,但市面上主流閲讀器要麼功能冗餘(如集成社交屬性),要麼技術棧陳舊(依賴Electron導致內存佔用高、性能差)。我們希望打造一款簡約輕量、高效率、高性能、隱私安全的RSS閲讀器,核心需求包括: 智庫情報引擎:支持基於搜索引擎的信息抓取與RSS源訂閲。 由AI驅動的特色能力:自動

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@czy

Rust中使用RocksDB索引進行高效範圍查詢的實踐指南

在當今海量數據處理場景下,高效的範圍查詢能力成為許多系統的關鍵需求。RocksDB作為一款高性能的嵌入式鍵值存儲引擎,其獨特的LSM樹結構和索引設計為範圍查詢提供了底層支持。本文將深入探討如何在Rust中利用RocksDB的特性來實現高效範圍查詢,從鍵的設計原則到迭代器的工程實踐,再到性能優化的實戰技巧。無論您是正在構建時序數據庫、構建搜索引擎,還是處理用户事件流,這些技術都能幫助您在保證數據一致

czy 頭像

@czy

昵稱 涵樹

@wJiang

【實戰】深入淺出 Rust 併發:RwLock 與 Mutex 在 Tauri 項目中的實踐

引言 你是否遇到過 Rust 併發場景下的資源競爭、性能瓶頸? 當多個線程同時抓取網頁導致 IP 被封、多線程讀寫本地數據引發一致性問題時,如何優雅地實現線程安全? 本文結合開源項目 Saga Reader 的真實開發場景,深度解析 Arc/Mutex/RwLock 的實戰技巧,帶你從 “踩坑” 到 “優化”,掌握 Rust 併發編程的核心方法論,文末附項目地址,歡迎 star 交流!

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@wJiang

【實戰】Rust與前端協同開發:基於Tauri的跨平台AI閲讀器實踐

一、背景與目標:為什麼做一個“非典型”的RSS閲讀器? 在信息爆炸的時代,RSS依然是高效獲取結構化內容的重要方式,但市面上主流閲讀器要麼功能冗餘(如集成社交屬性),要麼技術棧陳舊(依賴Electron導致內存佔用高、性能差)。我們希望打造一款簡約輕量、高效率、高性能、隱私安全的RSS閲讀器,核心需求包括: 智庫情報引擎:支持基於搜索引擎的信息抓取與RSS源訂閲。 由AI驅動的特色能力:自動

wJiang 頭像

@wJiang

昵稱 姜 萌@cnblogs

@czy

Rust中使用RocksDB索引進行高效範圍查詢的實踐指南

在當今海量數據處理場景下,高效的範圍查詢能力成為許多系統的關鍵需求。RocksDB作為一款高性能的嵌入式鍵值存儲引擎,其獨特的LSM樹結構和索引設計為範圍查詢提供了底層支持。本文將深入探討如何在Rust中利用RocksDB的特性來實現高效範圍查詢,從鍵的設計原則到迭代器的工程實踐,再到性能優化的實戰技巧。無論您是正在構建時序數據庫、構建搜索引擎,還是處理用户事件流,這些技術都能幫助您在保證數據一致

czy 頭像

@czy

昵稱 涵樹

@8848_62c77d4bb2532

佔用資源極低!這款輕量級 Nacos 性能炸裂!

大家好,我是 Java陳序員。 在開發中,Nacos 作為一款非常流行的微服務配置中心、註冊中心,在構建微服務項目時往往會使用到它。 但是對於個人開發者而言,雲服務器資源有限,往往無法撐起 Nacos 服務的高內存使用! 今天,給大家介紹一款輕量級的 Nacos 服務,功能平替,佔用資源極低! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。

8848_62c77d4bb2532 頭像

@8848_62c77d4bb2532

昵稱 Java陳序員

@jueqiangdeqianbi

為什麼 GraphQL 被認為是 Redux 的更好選擇?

近幾年來,互聯網技術趨向於採用前端 JavaScript 框架來構建更好的網頁和移動應用用户體驗。這種變化真的很棒🔥,我個人非常喜歡這些框架給我們帶來的靈活性。 但是,這種靈活性是否已經過頭了呢… 為了真正理解這種情況,我們不妨回顧一下,在 JavaScript 框架誕生之前,應用是如何構建的。 ⏳ JavaScript 出現之前的時代… 在最初的幾個前端框架(最著名的包括 Angular

jueqiangdeqianbi 頭像

@jueqiangdeqianbi

昵稱 倔強的鉛筆

@vivo_tech

基於 Three.js 的 3D 模型加載優化

作者:來自 vivo 互聯網前端團隊- Su Ning 作為一個3D的項目,從用户打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些,從而造成大量的用户流失。為了提升首屏加載的轉化率,需要儘可能的降低loading的時間。這裏就分享一些我們在模型加載優化方面的心得。 一、前言 近段時間,我們使用three.js完成了vivo擬我形象的開發工作,大家可以在vivo賬號

vivo_tech 頭像

@vivo_tech

昵稱 vivo互聯網技術

@lzfhope

rust學習二十.3、RUST使用不安全代碼訪問靜態變量

一、前言 1.1、為什麼要使用不安全塊訪問可變靜態變量 根據rust設計人的理解:靜態變量是可以修改,所以在併發情況下是可能存在併發/並行時候的不一致問題(如果要修改),這可能就不安全了。 所以,rust規定訪問可變靜態變量需要使用不安全代碼塊(unsafe塊)。 1.2、比較靜態變量和常量 1.常量與不可變靜態變量的一個微妙的區別是靜態變量中的值有一個固定的內存地址。使用這個值總是會訪問相同的

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.4、RUST使用不安全代碼訪問union(一存多表)類型

一、前言 看UNION的定義,頗為驚訝,居然有這樣的類型(以前沒有怎麼用過C)。 以下一段來自於文心一言: 1.定義和用途 union允許在相同的內存位置存儲不同類型的數據,但在任意時刻只能使用其中一個類型。 適用於需要在節省內存的情況下靈活存儲不同類型數據的場景。 2.內存佈局 所有字段共享相同的內存位置。 這意味着union的大小由其最大字段決定。 3.安全性與用

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.5、RUST特質中的關聯類型

這是rust特質(trait)中頗有意思的一個特性。 一、前言 這個特性,在前面已經有接觸過,例如書本的第十三章節的迭代器特質就有這個例子: impl Iterator for BooksIterator { type Item = String; fn next(mut self) - OptionString { if self.current_index 3

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.8、RUST特質的限定,實為對類型的限定

有的時候,可能希望使用的特質已經實現了其它特質(看後面可以知道,實際是要求相關類型實現了其它特質)。 RUST支持為特質(trait)指定限定的特質。 例如我們定義特質A,之後定義了類型T,這個時候還希望T已經實現了特質TC。 在rust中就是這個語法: trait tx:t1 trait tx:t1+t2..+tn 根據相關數據的例子和説明,需要特別注意,具體的實現都是依賴於類型,而不是特質。

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@more-sleep

rust之map和filter初探。

點擊查看代碼 fn main() { let v = vec![1, 2, 3, 4]; let a: Vec_ = v.iter().filter(|x: i32| *x % 2 == 0).map(|x: i32| x * 2).collect(); let b: Vec_ = v.iter().map(|x: i32| x * 2).filter(|x: i32

more-sleep 頭像

@more-sleep

昵稱 狗十二

@lzfhope

rust學習二十.9、RUST繞過孤兒規則實現特質和包裝器缺點

回憶下孤兒規則: 1.只有當一個trait或類型在當前的crate中定義時,才能為外部類型實現該trait。 沒有限定是特質還是類型 反過來,如果特質和類型都是外部,那麼不能在當前單元包實現 2.例外情況-std中特質是例外。大體驗證了凡事都有例外 孤兒規則的目的:避免編譯器無法確定應該用哪一個實現。 這個目的很容易理解。無論是否叫孤兒,絕大部分語言中都是類似的規則-不允許一個類型實現接口/特質的

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.10、RUST高級類型之新類型模式和類型別名

這兩個內容都比較容易理解。 一、新類型(newtype)模式 注意,這裏説的是一種編程模式,不是説有一個叫newtype的類型。 這種編程模式的含義:為某個類型作個封裝,構建一個新的類型,以便繞過某些束縛,從而達成特定目的。 目的如下: a.用於抽象掉一些類型的實現細節 b.可以隱藏其內部的泛型類型 c.實現曲線救國 一個典型的例子,利用新類型繞過孤兒規則。 二、類型別名 語法 type xxx=

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.12、RUST動態大小類型DST以及Sized特質

DST(dynamic size type)-中譯“動態大小類型"。本文簡要討論動態大小類型的一些問題。 一、前言 rust作為一門靜態類型語言,和大部分其它靜態類型語言(C,C++,C#,JAVA)一樣,希望在編譯的時候知道每個實例/類型的大小。 作為靜態類型語言,優點是毋庸置疑的的: 1.類型錯誤(如字符串與整數運算)在編譯階段即可被捕獲,減少運行時崩潰風險 2.編譯器可基於類型信息優化內存分

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.13、RUST的函數指針fn和匿名函數

函數指針是一個好東西。 一、簡述 函數指針就是執行一段函數代碼的指針。 根據官方的説法,函數指針實現了FnOnce,FnMut,Fn特質。 由於函數指針是一種數據類型,所以rustc允許它作為函數/方法的參數,這樣就給程序設計添加了不少的靈活性. 我估摸着,rust設計者就是為了讓rust能夠適應潮流:在函數/方法中直接傳遞匿名函數/閉包 一個典型的帶有函數指針的rust函數定義如下:

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中

@lzfhope

rust學習二十.14、RUST宏

毫無疑問,宏是rust中極其重要的存在,只要我們看看一些標準庫的代碼。本文闡述rust宏相關的若干問題 一、宏的定義和作用 先介紹下宏的起源和歷史,以便讀者更能體會。 以下內容來自文心一言生成: 詞源與早期含義 希臘-拉丁詞根 "macro"源於希臘語前綴μακρο-(makro-),意為“大”或“長”。拉丁語繼承為macro-(如macro-instruction),保留“大”的

lzfhope 頭像

@lzfhope

昵稱 正在戰鬥中