[编程开发] Github上有哪些Rust写的知名项目?

[复制链接]
丰鹰 发表于 2023-10-26 06:39:30|来自:北京 | 显示全部楼层 |阅读模式
Github上有哪些Rust写的知名项目?
全部回复5 显示全部楼层
村痞 发表于 2023-10-26 06:40:22|来自:北京 | 显示全部楼层
自吹一波 ast-grep。Rust写的高速通用结构化搜索工具。
ast-grep 基于tree-sitter的Rust API,加上ripgrep师出同门的文件遍历库ignore,再加上clap 提供 CLI的界面支持。是Rust生态的标配项目。
功能上支持命令行直接调结构化搜索代码和代码替换。


还支持使用YAML配置检查规则当Eslint用(当然速度比Eslint快太多了)


本身速度比Semgrep等前辈快很多,还能用napi.rs 写复杂逻辑。Vue Vine | Vue Vine 就用了ast-grep做脚本。
你可以拿它

  • 当Eslint/pylint使
  • 做代码迁移工具使: 迁移Bevy的例子
  • 当grep来使用(某些场景比grep还快)
  • 当Babel/ go ast/py ast操作的高速替代品
项目链接在下面,求一波点赞关注转发!
https://github.com/ast-grep/ast-grephttps://medium.com/@hchan_nvimblog地址在上面,希望能拿到最新消息的可以关注一波!
ebchina 发表于 2023-10-26 06:40:36|来自:北京 | 显示全部楼层
阅读 Rust 项目的源码,当然是 Rust 自己的编译器啦,因为 Rust 已经自举了。
注:本条回答未得到 Rust 基金会的认可。
shower 发表于 2023-10-26 06:41:17|来自:北京 | 显示全部楼层
GitHub - risingwavelabs/risingwave: RisingWave: the next-generation streaming database in the cloud.升浪,几乎支持 Windows 的流式数据库。我在贡献者里排 50 多名。
测试依赖算下来共 1k+ 个 crate,是 Rust 社区的集大成者。
qiuhill2000 发表于 2023-10-26 06:41:43|来自:北京 | 显示全部楼层
最近在看的一个项目,是用rust写的一个WebSocket库
rust-websocket这个项目的代码比较少,只有两千多行,但是结构并不简单。可以说这个项目让我知道代码原来还可以这么写(当然可能是我井底之蛙了)。
之所以这么说,是因为这个项目运用了大量的trait, 使得模块之间的耦合度非常之低,同时也使得项目的可扩展性非常高,不同模块之间进行耦合完全是基于trait而不是具体的struct, 所以如果你不满意它的某个类的实现方式,完全可以根据trait实现一个新的,同时保留之前的代码也完全可以用。
同时还同时实现了sync和async的特性(但是不是事件驱动),所以我觉得这个项目对于想要学习rust的面向对象方式的同学是很好的一个项目的。
Kimi 发表于 2023-10-26 06:42:02|来自:北京 | 显示全部楼层
经过大浪淘沙留下来的才是真金白银,对于开源项目也是如此。本文不仅仅以star数的多少作为明星项目的评判维度,还会结合项目规模、影响力、活跃度、社区活跃度等多个方面进行评定,希望大家能喜欢。
需要注意,本文列出的几乎都是平台级项目,因此并不是star多,就能名列其中,例如很多star很多的工具、Rust库、书籍都没有列入,如果大家想要看更多的子类项目,可以访问Fancy Rust。
滚滚长江东逝水,浪花淘尽英雄,是非成败转头空 - 临江仙·滚滚长江东逝水
deno

首先出场的自然是咖位最重的之一,可以说正是因为deno和swc的横空出世,才让一堆观望的大神对于Rust实现Javascript基建有了更强的信心。
deno是node半逆转后的字序,从此可以看出deno是Node.js的替代,它的目标是为Typescript/Javascript提供一个更现代化、更安全、更强大 的运行时,同时内置了很多强大的工具,可以用于打包、编译成可执行文件、文档、测试、lint等。
alacritty

alacritty是一个跨平台、基于OpenGL的终端,性能极高的同时还支持丰富的自定义和可扩展性,可以说是非常优秀的现代化终端。
目前已经是beta阶段,可以作为日常工具来使用。


starship

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



MeiliSearch

MeiliSearch是一个搜索平台,但是跟ElasticSearch不同,MeiliSearch并不是通用目的的,它的目标是为终端用户提供边输入边提示的即刻搜索功能,因此是一个轻量级搜索平台,不适用于数据量大时的搜索目的。
总之,如果你需要在网页端或者APP为用户提供一个搜索条,然后支持输入容错、前缀搜索时,就可以使用它。


swc

swc是Typescript/Javascript编译器,它可以用来编译、压缩和打包JS,同时支持使用插件进行扩展,例如做代码变换等。
swc目前正在被一些知名项目所使用,包括Next.js,Parcel和Deno,还有些著名的公司也在使用它,例如Vercel、字节跳动、腾讯等。
它的性能非常非常高,官方号称,在单线程下比Babel快20倍,在4核心下比Babel快70倍!
几个使用案例:

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


tauri

tauri可以用来更小、更快、更安全的桌面应用,它想要替代的是electro.js。
下面是援引自官网的性能对比图:





yew

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



firecracker

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

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



tokio

tokio的名声可以说是如雷贯耳,如果学过Rust但是没有听说过它,那我觉得可能要回炉重造下:)
tokio是一个异步IO的运行时,提供了I/O、网络、调度、定时器等等异步编程所必须的功能和工具,性能和功能都异常强大。
AppFlowy

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



Bevy

bevy是一个数据驱动的游戏引擎,支持2D和3D图形开发,优点是社区活跃、更新快、模块化设计优秀、性能高,缺点是还处于快速开发中,并不适合生产使用。
同时bevy的文档齐全,官方示例很多,非常适合学习和使用。



actix-web

actix-web是全世界最快的web框架之一,甚至可以把之一去掉,因为排在它前面的看上去像是一个专为跑分而生的轻量级框架,而actix-web可是功能相当多的!
下面给出actix和Go语言Gin框架的性能对比:



iced

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



cube.js

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



wasmer

wasmer是业界领先的WASM运行时,支持WASI和Emscripten。
  1. $ wasmer qjs.wasm
  2. QuickJS - Type "\h" for help
  3. qjs > const i = 1 + 2;
  4. qjs > console.log("hello " + i);
  5. hello 3
复制代码
tikv

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



ruffle

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

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



RustPython

[RustPython]是使用Rust实现的Python解释器, 支持Python3(CPython >= 3.9.0)。
大家可以通过官方提供的在线网址进行尝试。



vector

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


mdbook

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



zola

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



gitui

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



solana

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

ripgrep是一个性能极高的现代化grep实现,后者是Unix/Linux下的内置文件搜索工具。该项目是Rust的明星项目,一个是因为性能极其的高,另一个就是源代码质量很高,值得学习, 同时Vscode使用它作为内置的搜索引擎。
从功能来说,除了全面支持grep的功能外,repgre支持使用正则递归搜索指定的文件目录,默认使用.gitignore对指定的文件进行忽略。



citybound

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



bottlerocket

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

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



tantivy

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

sled是本地嵌入式的数据库。
  1. let tree = sled::open("/tmp/welcome-to-sled")?;
  2. // insert and get, similar to std's BTreeMap
  3. let old_value = tree.insert("key", "value")?;
  4. assert_eq!(
  5.   tree.get(&"key")?,
  6.   Some(sled::IVec::from("value")),
  7. );
  8. // range queries
  9. for kv_result in tree.range("key_1".."key_9") {}
  10. // deletion
  11. let old_value = tree.remove(&"key")?;
  12. // atomic compare and swap
  13. tree.compare_and_swap(
  14.   "key",
  15.   Some("current_value"),
  16.   Some("new_value"),
  17. )?;
  18. // block until all operations are stable on disk
  19. // (flush_async also available to get a Future)
  20. tree.flush()?;
复制代码
redox

Redox是一个Unix风格的微内核操作系统,使用Rust实现。redox的目标是安全、快速、免费、可用,它在内核设计上借鉴了很多优秀的内核,例如:SeL4, MINIX, Plan 9和BSD。
但redox不仅仅是一个内核,它还是一个功能齐全的操作系统,提供了操作系统该有的功能,例如:内存分配器、文件系统、显示管理、核心工具等等。你可以大概认为它是一个GNU或BSD生态,但是是通过一门现代化、内存安全的语言实现的。
不过据我仔细观察,redox目前的开发进度不是很活跃,不知道发生了什么,未来若有新的发现会在这里进行更新 - Sunface
youki

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


sixtyfps


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




wasmtime


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

  1. fn main() {
  2. println!("Hello, world!");
  3. }
  4. $ rustup target add wasm32-wasi
  5. $ rustc hello.rs --target wasm32-wasi
  6. $ wasmtime hello.wasm
  7. Hello, w
复制代码
polkadot

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

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




rust-gpu

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

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

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则