明星项目

滚滚长江东逝水,浪花淘尽英雄,是非成败转头空 - 临江仙·滚滚长江东逝水

经过大浪淘沙留下来的才是真金白银,对于开源项目也是如此。对于明星项目,本文不仅仅以star数的多少作为评判维度,还会结合项目规模、影响力、活跃度、社区活跃度等多个方面进行评定,希望大家能喜欢。

需要注意,本文列出的几乎都是平台级项目,因此并不是star多,就能名列其中,例如很多star很多的工具、Rust库、书籍都没有列入,如果大家想要看更多的子类项目,请访问对应的文件进行查看。

deno

首先出场的自然是咖位最重的之一,可以说正是因为denoswc的横空出世,才让一堆观望的大神对于Rust实现Javascript基建有了更强的信心。

denonode半逆转后的字序,从此可以看出denoNode.js的替代,它的目标是为Typescript/Javascript提供一个更现代化、更安全、更强大 的运行时,同时内置了很多强大的工具,可以用于打包、编译成可执行文件、文档、测试、lint等。

alacritty

alacritty是一个跨平台、基于OpenGL的终端,性能极高的同时还支持丰富的自定义和可扩展性,可以说是非常优秀的现代化终端。

目前已经是beta阶段,可以作为日常工具来使用。

alacritty screenshot

starship

starship是一个命令行提示,支持任何shell,包括zsh,简单易用、非常快且拥有极高的可配置性。

starship screenshot

MeiliSearch

MeiliSearch是一个搜索平台,但是跟ElasticSearch不同,MeiliSearch并不是通用目的的,它的目标是为终端用户提供边输入边提示的即刻搜索功能,因此是一个轻量级搜索平台,不适用于数据量大时的搜索目的。

总之,如果你需要在网页端或者APP为用户提供一个搜索条,然后支持输入容错、前缀搜索时,就可以使用它。

meilisearch screenshot

swc 🌟19.5k

swcTypescript/Javascript编译器,它可以用来编译、压缩和打包JS,同时支持使用插件进行扩展,例如做代码变换等。

swc目前正在被一些知名项目所使用,包括Next.js,ParcelDeno,还有些著名的公司也在使用它,例如Vercel、字节跳动、腾讯等。

它的性能非常非常高,官方号称,在单线程下比Babel快20倍,在4核心下比Babel快70倍!

几个使用案例:

  • nextjs 12, 通过使用swc获得了更好的扩展性、性能以及wasm的支持,其中性能方面提升了3倍刷新速度、5倍打包速度
  • Parcel,通过使用swc改善了10倍的性能
parcel screenshot

tauri

tauri可以用来更小、更快、更安全的桌面应用,它想要替代的是electron.js

下面是援引自官网的性能对比图:

tauri1 screenshot tauri2 screenshot

yew

yew是一个正在活跃开发的Rust/Wasm框架,用于构建Web应用。

yew screenshot

firecracker

firecracker是一个安全、高性能的无服务计算虚拟机(FaaS),支持多租户、资源隔离等高级特性,由Amazon公司开发,为AWS部分云计算服务提供了强力有的支持。BTW,亚马逊Amazon公司对于Rust语言的喜爱是众所周知的,几乎已经成了Rust的形象大使之一了:)

nushell

nushell是一个全新的shell,使用Rust实现。它的目标是创建一个现代化的shell:虽然依然基于Unix的哲学,但是更适合现在的时代。例如,你可以使用SQL语法来选择你想要的内容!

delta screenshot

tokio

tokio的名声可以说是如雷贯耳,如果学过Rust但是没有听说过它,那我觉得可能要回炉重造下:)

tokio是一个异步IO的运行时,提供了I/O、网络、调度、定时器等等异步编程所必须的功能和工具,性能和功能都异常强大。

AppFlowy

AppFlowyNotion的开源实现,使用RustFlutter进行开发,用于用户文档和数据的管理,支持丰富的自定义特性。

appflowy screenshot

Bevy

bevy是一个数据驱动的游戏引擎,支持2D和3D图形开发,优点是社区活跃、更新快、模块化设计优秀、性能高,缺点是还处于快速开发中,并不适合生产使用。

同时bevy的文档齐全,官方示例很多,非常适合学习和使用。

bevy screenshot

actix-web

actix-web是全世界最快的web框架之一,甚至可以把之一去掉,因为排在它前面的看上去像是一个专为跑分而生的轻量级框架,而actix-web可是功能相当多的!

下面给出actix和Go语言Gin框架的性能对比:

actix screenshot

iced

iced是一个跨平台GUI库,具有简单易用、模块化设计、响应式布局等优点。

iced screenshot

cube.js

cube.js是一个数据分析API平台,可以用于构建内部的BI或为现有的应用增加客户数据统计等功能,使用RustTypescript构建。

cubejs screenshot

wasmer

wasmer是业界领先的WASM运行时,支持WASIEmscripten

$ wasmer qjs.wasm
QuickJS - Type "\h" for help
qjs > const i = 1 + 2;
qjs > console.log("hello " + i);
hello 3

tikv

tikv相信大家都已知道,tidb的底层存储服务,国人之光项目,在数据之外,还做了大量的技术知识普及工作,值得敬佩!

tikv是分布式KV数据库,支持分布式事务。

tikv screenshot

ruffle

ruffle是用Rust写的Flash Player模拟器,同时支持桌面端和Web端,其中后者通过WASM提供支持。

rustdesk

rustdesk是国内团队开发的一款远程桌面软件。

rustdesk screenshot

RustPython

[RustPython]是使用Rust实现的Python解释器, 支持Python3(CPython >= 3.9.0)。

大家可以通过官方提供的在线网址进行尝试。

rustpython screenshot

vector

vector是一个性能很高的数据采集agent,采集本地的日志、监控等数据,发送到远程的kafka、jaeger等数据下沉端,它最大的优点就是能从多种数据源(包括Opentelemetry)收集数据,然后推送到多个数据处理或者存储等下沉端。

vector screenshot

mdbook

mdbbok可以基于markdown文件自动创建在线电子书,非常简单好用,目前的问题就是缺乏章节内部的目录跳转和中文搜索。

mdbook screenshot

zola

zola是一个静态网站生成器,类似hugo

zola screenshot

gitui

gitui是一个奇快无比的Git终端UI,无需浏览器即可使用。

gitui screenshot

solana

solana是知名的区块链平台,快速、安全、去中心化,还自带应用市场。

ripgrep

ripgrep是一个性能极高的现代化grep实现,后者是Unix/Linux下的内置文件搜索工具。该项目是Rust的明星项目,一个是因为性能极其的高,另一个就是源代码质量很高,值得学习, 同时Vscode使用它作为内置的搜索引擎。

从功能来说,除了全面支持grep的功能外,repgre支持使用正则递归搜索指定的文件目录,默认使用.gitignore对指定的文件进行忽略。

ripgrep screenshot

citybound

citybound是一个多人在线模拟游戏,使用Rust + WASM + JS开发。

citybound screenshot

bottlerocket

bottlerocket是一个基于Linux的操作系统,它的目标是为容器提供宿主环境。

lemmy

lemmy是一个reddit克隆,可以通过连接聚合的方式来构建社区,支持桌面和移动端。

lemmy screenshot

tantivy

tantivy是Rust实现的本地搜索库,功能对标lucene,如果你不需要分布式,那么引入tantivy作为自己本地Rust服务的一个搜索,是相当不错的选择,该库作者一直很活跃,而且最近还创立了搜索引擎公司,感觉大有作为. 该库的优点在于纯Rust实现,性能高(lucene的2-3倍),资源占用低(对比java自然不是一个数量级),社区活跃。

sled

sled是本地嵌入式的数据库。

#![allow(unused)]
fn main() {
let tree = sled::open("/tmp/welcome-to-sled")?;

// insert and get, similar to std's BTreeMap
let old_value = tree.insert("key", "value")?;

assert_eq!(
  tree.get(&"key")?,
  Some(sled::IVec::from("value")),
);

// range queries
for kv_result in tree.range("key_1".."key_9") {}

// deletion
let old_value = tree.remove(&"key")?;

// atomic compare and swap
tree.compare_and_swap(
  "key",
  Some("current_value"),
  Some("new_value"),
)?;

// block until all operations are stable on disk
// (flush_async also available to get a Future)
tree.flush()?;
}

redox

Redox是一个Unix风格的微内核操作系统,使用Rust实现。redox的目标是安全、快速、免费、可用,它在内核设计上借鉴了很多优秀的内核,例如:SeL4, MINIX, Plan 9BSD

redox不仅仅是一个内核,它还是一个功能齐全的操作系统,提供了操作系统该有的功能,例如:内存分配器、文件系统、显示管理、核心工具等等。你可以大概认为它是一个GNUBSD生态,但是是通过一门现代化、内存安全的语言实现的。

不过据我仔细观察,redox目前的开发进度不是很活跃,不知道发生了什么,未来若有新的发现会在这里进行更新 - Sunface

redox1 screenshot redox2 screenshot

youki

youki是一个容器运行时,实现了OCI标准,性能非常好的同时具备非常高的安全性, 目前来说,它的性能跟crun差不多,比runc快50%以上。

slint

slint是一个GUI工具集,原名sixtyfps, 同时适用于嵌入式系统、桌面系统、移动端、浏览器(WASM),支持使用多种语言进行开发,背后有商业公司的支持,未来前景看好。

slint已于2023年4月发布1.0版本,标志着结束开发模式并已准备好在生产环境中使用。

sixtyfps screenshot

wasmtime

wasmtime是一个为WASM设计的JIT风格的独立运行时,支持WASI

fn main() {
    println!("Hello, world!");
}
$ rustup target add wasm32-wasi
$ rustc hello.rs --target wasm32-wasi
$ wasmtime hello.wasm
Hello, w

polkadot

polkadot是知名的区块链平台,它是从Substrate抽离出来,后者是下一代区块链开发框架。

lapce

lapce是一款性能极高、功能强大、基于wgpu渲染的代码编辑器,基于Xi-Editor开发,后者Xi-Editor曾经也红极一时,可惜不再维护了,但是依然非常适合做一个编辑器内核。

lapce screenshot

rust-gpu

rust-gpu的目标是让Rust成为GPU编程的第一梯队语言,由大名鼎鼎的Embark公司开发,后台较硬。

如果需要通用的GPU编程,选它就对了。