Giter Club home page Giter Club logo

awesome-rust-list's Introduction

Awesome-Rust-List

Awesome

🔥🔥🔥 This repository lists some awesome public Rust programming language projects.

Contents

Summary

Performance Benchmark

Data Structure and Algorithm

Parallelism Library

Asynchronous Runtime

  • Tokio : A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language.

  • May : May is a high-performance library for programming stackful coroutines with which you can easily develop and maintain massive concurrent programs. It can be thought as the Rust version of the popular Goroutine.

FFI Bindings

GPU Programming

  • cudarc : cudarc: minimal and safe api over the cuda toolkit.

  • ZLUDA : CUDA on AMD GPUs.

  • async-cuda : Asynchronous CUDA for Rust.

  • async-tensorrt : Asynchronous TensorRT for Rust.

  • cjordan/hip-sys : Rust bindings for HIP.

  • custos : A minimal OpenCL, CUDA, WGPU and host CPU array manipulation engine / framework.

  • Vulkano : Safe and rich Rust wrapper around the Vulkan API. Vulkano is a Rust wrapper around the Vulkan graphics API. It follows the Rust philosophy, which is that as long as you don't use unsafe code you shouldn't be able to trigger any undefined behavior. In the case of Vulkan, this means that non-unsafe code should always conform to valid API usage.

  • rust-gpu : 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧 shader.rs

  • wgpu : Safe and portable GPU abstraction in Rust, implementing WebGPU API. wgpu.rs

  • Ash : Vulkan bindings for Rust.

  • Rust-CUDA : Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust.

  • ocl : OpenCL for Rust.

  • opencl3 : A Rust implementation of the Khronos OpenCL 3.0 API.

  • Jafagervik/cruda : CRUDA - Writing rust with cuda.

  • lennyerik/cutransform : CUDA kernels in any language supported by LLVM.

Scientific Computation

  • Numerical Calculation

    • rapl : Rank Polymorphic array library for Rust. rapl is an experimental numerical computing Rust library that provides a simple way of working with N-dimensional array, along with a wide range of mathematical functions to manipulate them. It takes inspiration from NumPy and APL, with the primary aim of achieving maximum ergonomics and user-friendliness while maintaining generality.

    • scilib : A rust crate for mathematics and science. crates.io/crates/scilib

    • fitting-rs : Curve fitting library for Rust. crates.io/crates/fitting

  • Linear Algebra

    • mathbench : mathbench is a suite of unit tests and benchmarks comparing the output and performance of a number of different Rust linear algebra libraries for common game and graphics development tasks.

    • ndarray : The ndarray crate provides an n-dimensional container for general elements and for numerics.

    • ndarray-linalg : Linear algebra package for rust-ndarray using LAPACK binding.

    • nalgebra : Linear algebra library for the Rust programming language.

    • faer : Linear algebra foundation for the Rust programming language. faer-rs.github.io. faer is a collection of crates that implement low level linear algebra routines in pure Rust. The aim is to eventually provide a fully featured library for linear algebra with focus on portability, correctness, and performance.

    • glam : A simple and fast 3D math library for games and graphics.

    • russell : Rust Scientific Libary. Matrix-vector laboratory, OpenBLAS, sparse direct solvers.

    • ultraviolet : A wide linear algebra crate for games and graphics.

    • hasty : High-performance BLAS and LAPACK within Rust.

    • cgmath : A linear algebra and mathematics library for computer graphics.

    • vek : Generic 2D-3D math swiss army knife for game engines, with SIMD support and focus on convenience.

    • static-math : Safe and fast mathematical operations with static arrays in the Rust programming language.

    • rust-numpy : PyO3-based Rust bindings of the NumPy C-API.

    • custos-math : This crate provides CUDA, OpenCL, CPU (and Stack) based matrix operations using custos.

    • bluss/matrixmultiply : General matrix multiplication of f32 and f64 matrices in Rust. Supports matrices with general strides. docs.rs/matrixmultiply/

  • Lie Groups

    • sophus-rs : Rust bindings for the C++ implementation of Lie Groups using Eigen.
  • Optimization Engine

  • Finite Element Analysis

  • Data Analysis and Visualization

    • Polars : Polars. Fast multi-threaded, hybrid-out-of-core DataFrame library in Rust | Python | Node.js.

    • Plotters : A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀

    • Rerun : Rerun: Visualization infrastructure for computer vision. Log images, point clouds, etc, and visualize them effortlessly. Built in Rust using egui. rerun.io

    • Lance : Lance: modern columnar data format for ML. Convert from parquet in 2-lines of code for 100x faster random access, a vector index, data versioning, and more. Compatible with pandas, duckdb, polars, pyarrow, with more integrations on the way. eto-ai.github.io/lance/

    • Typst : A new markup-based typesetting system that is powerful and easy to learn. Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use. typst.app.

    • Charming : A visualization library for Rust.

Machine Learning

Design Pattern

Static Variables

  • typed-arena : A small macro for defining lazy evaluated static variables in Rust.

Memory Allocator

Embedded Development

General Operating System

  • BlogOS : This repository contains the source code for the Writing an OS in Rust series at os.phil-opp.com.

  • rCore-Tutorial-v3 : OS kernel labs based on Rust/C Lang & RISC-V 64/X86-32.

  • rCore : Rust version of THU uCore OS. Linux compatible.

  • zCore : Reimplement Zircon microkernel in Rust.

  • RustSBI : RISC-V Supervisor Binary Interface (RISC-V SBI) implementation library in Rust; runs on M or HS mode; good support for embedded Rust ecosystem.

  • writing-an-os-in-rust : 《使用Rust编写操作系统》

  • Theseus : Theseus is a modern OS written from scratch in Rust that explores 𝐢𝐧𝐭𝐫𝐚𝐥𝐢𝐧𝐠𝐮𝐚𝐥 𝐝𝐞𝐬𝐢𝐠𝐧, novel OS structure, and state management.

  • snarkOS : A Decentralized Operating System for Zero-Knowledge Applications.

  • thepowersgang/rust_os : An OS kernel written in rust. Non POSIX.

  • MOROS : MOROS: Obscure Rust Operating System 🦉

  • EuraliOS : A hobby x86-64 operating system written in Rust.

  • SIMDeez : A library that abstracts over SIMD instruction sets, including ones with differing widths. SIMDeez is designed to allow you to write a function one time and produce SSE2, SSE41, and AVX2 versions of the function.

  • yavkOS : Operating system based off of blog_os, with the goal of running wasm modules as executables.

  • Felix OS : 🐱 x86 operating system. Felix is my attempt at writing an x86 operating system. It's written completely from scratch in Rust and doesn't use any external dependencies.

  • jdreaver/rust-os : Creating a bare metal OS in Rust.

  • r9os/r9 : The R9 operating system.

Robot Operating System

  • micro-ROS for Arduino : micro-ROS library for Arduino.

  • dora-rs : In 2023, AI is booming! Robotic framework however hasn't changed much in years... This is why we create dora-rs! dora-rs is a new robotic framework that brings modernity into robotic application. dora goal is to be a low latency, composable, and distributed data flow. dora.carsmos.ai

  • openrr : Open Rust Robotics. OpenRR (pronounced like "opener") is Open Rust Robotics platform.

  • rosrust : rosrust is a pure Rust implementation of a ROS client library.

  • ros2_rust : Rust bindings for ROS2.

  • r2r : R2R - Easy to use, runtime-agnostic, async rust bindings for ROS2.

  • erdos : Dataflow system for building self-driving car and robotics applications.

  • rclrust : This is yet another ROS2 client library written in Rust.

  • RustDDS : RustDDS is a pure Rust implementation of Data Distribution Service, developed by Atostek Oy.

  • ros2-client : ROS2 client library based on RustDDS.

  • rosbag-rs : A pure Rust crate for reading ROS bag files.

  • rustros_tf : This is a rust port of the ROS tf library.

  • urdf-rs : URDF parser using serde-xml-rs for rust.

  • urdf-viz : visualize URDF/XACRO file, URDF Viewer works on Windows/MacOS/Linux.

  • ros-nalgebra : Generate code to convert geometry_msgs into nalgebra structs, for rosrust.

  • strawlab/opencv-ros-camera : Geometric models of OpenCV/ROS cameras for photogrammetry.

  • luickk/MinimalRoboticsPlatform : MRP is a minimal microkernel that supports the most fundamental robotic domains. It's thought for highly integrated robotics development.

  • newpavlov/rosbag-rs : A pure Rust crate for reading ROS bag files.

Hardware Description Language

  • Veryl : Veryl: A Modern Hardware Description Language.

  • RustHDL : A framework for writing FPGA firmware using the Rust Programming Language.

  • VHDL-LS/rust_hdl : This repository contains a fast VHDL language server and analysis library written in Rust.

  • yupferris/kaze : An HDL embedded in Rust. kaze provides an API to describe Modules composed of Signals, which can then be used to generate Rust simulator code or Verilog modules.

  • dalance/sv-parser : SystemVerilog parser library fully compliant with IEEE 1800-2017.

  • dalance/svls : SystemVerilog language server.

  • dalance/svlint : SystemVerilog linter.

  • vivekmalneedi/veridian : A SystemVerilog Language Server.

  • zachjs/sv2v : SystemVerilog to Verilog conversion.

Logic Programming

  • Scryer Prolog : A modern Prolog implementation written mostly in Rust.

Shared Memory

Remote Desktop

  • RustDesk : Virtual / remote desktop infrastructure for everyone! Open source TeamViewer / Citrix alternative. rustdesk.com.

Date and Time

Data Encryption

  • rustic : rustic - fast, encrypted, deduplicated backups powered by Rust.

Database

  • Qdrant : Qdrant - Vector Database for the next generation of AI applications. Also available in the cloud https://cloud.qdrant.io/. qdrant.tech

  • SQLx : 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL.

  • Rusqlite : Rusqlite is an ergonomic wrapper for using SQLite from Rust.

  • CeresDB : CeresDB is a high-performance, distributed, cloud native time-series database. docs.ceresdb.io

  • redb : An embedded key-value database in pure Rust. www.redb.org

  • mysql_async : Asyncronous Rust Mysql driver based on Tokio.

  • Rustbase : Rustbase is open source, lightweight, modern and fast NoSQL database. rustbase.app/

Sensor and Communication Protocol

Signal Processing

File Processing

Image and Video Processing

  • opencv-rust : Rust bindings for OpenCV 3 & 4.

  • rust-cv/cv : Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.

  • photon : ⚡ Rust/WebAssembly image processing library. silvia-odwyer.github.io/photon. Photon is a high-performance Rust image processing library, which compiles to WebAssembly, allowing for safe, blazing-fast image processing both natively and on the web.

  • image-rs/image : Encoding and decoding images in Rust.

  • image-rs/imageproc : An image processing library, based on the image library.

  • zshipko/image2-rs : A Rust crate focused on generic image processing for a wide range of image formats and data types.

  • WebRTC.rs : A pure Rust implementation of WebRTC. webrtc.rs

  • zmwangx/rust-ffmpeg : Safe FFmpeg wrapper.

  • meh/rust-ffmpeg : Safe FFmpeg wrapper.

  • Simp : 🖼️ Simp is a fast and simple GPU-accelerated image manipulation program.

  • jay3332/ril : Rust Imaging Library: A high-level imaging crate for Rust. crates.io/crates/ril

  • Futsch1/image-sieve : ImageSieve is a GUI based tool to assist in sorting images based on taken date and similarity, categorize them according to their creation date and archive them in a target folder.

  • neka-nat/cuimage : Rust implementation of image processing library with CUDA.

  • iamdb/stream-cv : Playing around with Rust, libav (ffmpeg), opencv and multithreading.

  • BinciLuo/Rust-opencv-Application : Implementation of an application based on OpenCV written in Rust.

  • koukemo/rust_cv_sample : Sample of Rust using opencv to load images.

Live Media Server

  • Xiu : A simple, high performance and secure live media server in pure Rust (RTMP[cluster]/RTSP/HTTP-FLV/HLS).🦀

Localization and Mapping

Path Planning

  • pathfinding : Pathfinding library for rust. This crate implements several pathfinding, flow, and graph algorithms in Rust.

  • rrt : RRT (Rapidly-exploring Random Tree) library in Rust.

  • gear : Collision Avoidance Path Planning in Rust-lang.

  • trajectory : trajectory interpolation library for Rust and robotics.

  • marcbone/s_curve : S-Curve trajectory generator written in rust.

  • Sollimann/bonsai : Rust implementation of behavior trees.

Motion Control

Finite State Machine

Game Field

  • Bevy : Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever! bevyengine.org

  • Fyrox : 3D and 2D game engine written in Rust. fyrox.rs

  • Ambient : Ambient is a runtime for building high-performance multiplayer games and 3D applications, powered by WebAssembly, Rust and WebGPU. ambient.run

  • Rapier : Rapier is a set of 2D and 3D physics engines for games, animation, and robotics. rapier.rs

  • bevy_rapier : Official Rapier plugin for the Bevy game engine.

  • Parry : 2D and 3D collision-detection library for Rust. parry.rs

  • Eldiron : A cross platform classic RPG game creator written in Rust. www.eldiron.com

Search Engine

Network Service

Web Crawler

RPC Framework

  • Volo : Volo is a high-performance and strong-extensibility Rust RPC framework that helps developers build microservices. crates.io/crates/volo

Web Framework

  • reqwest : An easy and powerful Rust HTTP Client. docs.rs/reqwest

  • Yew : Yew is a modern Rust framework for creating multi-threaded front-end web apps with WebAssembly. yew.rs

  • Axum : Ergonomic and modular web framework built with Tokio, Tower, and Hyper.

  • Salvo : Salvo is a powerful and simplest web server framework in Rust world. salvo.rs

  • Actix : Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust. actix.rs

  • Rocket : A web framework for Rust. rocket.rs

  • Poem : A full-featured and easy-to-use web framework with the Rust programming language.

  • Rouille : Rouille, a Rust web micro-framework.

  • Leptos : Build fast web applications with Rust.

  • Farm : Super fast web build tool written in Rust - 基于 Rust 的极速 web 构建引擎。 farm-fe.github.io

  • zino : zino is a full-featured web application framework for Rust with a focus on productivity and performance.

  • Hyper : A terminal built on web technologies. hyper.is

  • Deno : Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. deno.land

  • SWC : SWC (stands for Speedy Web Compiler) is a super-fast TypeScript / JavaScript compiler written in Rust. swc.rs

  • tchatche.rs : tchatche.rs is a blazing fast chat application built with Axum and Yew.rs. tchatche.rs

  • tonic : A native gRPC client & server implementation with async/await support. docs.rs/tonic

  • MoonZoon : Rust Fullstack Framework.

Web3 Framework

WebAssembly

  • Wasmer : Wasmer is a fast and secure WebAssembly runtime that enables super lightweight containers to run anywhere: from Desktop to the Cloud, Edge and IoT devices. wasmer.io

  • wasmtime : A fast and secure runtime for WebAssembly. wasmtime.dev/

Graphics Library

GUI

  • GUI Framework

    • Dioxus : Fullstack GUI library for desktop, web, mobile, and more. dioxuslabs.com

    • marc2332/freya : Native GUI library for 🦀 Rust powered by 🧬 Dioxus and 🎨 Skia. freyaui.dev/

    • Slint : Slint is a declarative GUI toolkit to build native user interfaces for applications that are written in Rust, C++, or JavaScript. slint.dev

    • slint-ui/slint-rust-template : A template for a Rust Application using Slint. This is meant to be used with cargo-generate. slint.dev

    • syf20020816/SurrealismUI : SurrealismUI是一个完全使用Slint进行构建的Slint第三方组件库。 SurrealismUI is a third-party component library built entirely using Slint.

    • Tauri : Build smaller, faster, and more secure desktop applications with a web frontend. tauri.app. Tauri is a framework for building tiny, blazingly fast binaries for all major desktop platforms. Developers can integrate any front-end framework that compiles to HTML, JS and CSS for building their user interface. The backend of the application is a rust-sourced binary with an API that the front-end can interact with.

    • Pake : 🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App.

    • Makepad : Makepad is a creative software development platform for Rust that compiles to wasm/webGL, osx/metal, windows/dx11 linux/opengl. makepad.dev/

    • KDAB/cxx-qt : Safe interop between Rust and Qt.

    • Rust-In-Flutter : Rust as your Flutter backend, Flutter as your Rust frontend.

    • egui : egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native.

    • Iced : A cross-platform GUI library for Rust focused on simplicity and type-safety. Inspired by Elm.

    • Xilem : An experimental Rust architecture for reactive UI.

    • Druid : A data-first Rust-native UI toolkit.

    • Floem : A native Rust UI library with fine-grained reactivity.

    • Crux : Cross-platform app development in Rust. redbadger.github.io/crux/

    • flutter_rust_bridge : High-level memory-safe binding generator for Flutter/Dart <-> Rust. fzyzcjy.github.io/flutter_rust_bridge/

    • KDE/rust-qt-binding-generator : Generate bindings to use Rust code in Qt and QML.

    • marek-g/rust-fui : MVVM Rust UI Framework Library.

    • apertus-open-source-cinema/narui : A react-inspired UI library for building multimedia desktop apps with rust and vulkan.

  • GUI Software

  • Tauri-Related

    - [sandunwira/SupTube](https://github.com/sandunwira/SupTube) <img src="https://img.shields.io/github/stars/sandunwira/SupTube?style=social"/> : An open-source Windows client for YouTube. [suptube.repl.co](https://suptube.repl.co/)
    
    - [spieglt/FlyingCarpet](https://github.com/spieglt/FlyingCarpet) <img src="https://img.shields.io/github/stars/spieglt/FlyingCarpet?style=social"/> : File transfer between Android, iOS, Linux, macOS, and Windows over ad hoc WiFi. No network infrastructure required, just two devices with WiFi chips in close range.
    
    - [Minori-ty/mp4To4K-rust](https://github.com/Minori-ty/mp4To4K-rust) <img src="https://img.shields.io/github/stars/Minori-ty/mp4To4K-rust?style=social"/> : 使用Tauri做的一个将动漫视频转4K视频的软件。
    
    - [seiKiMo-Inc/Laudiolin](https://github.com/seiKiMo-Inc/Laudiolin) <img src="https://img.shields.io/github/stars/seiKiMo-Inc/Laudiolin?style=social"/> : A "high quality" music player written in TypeScript using Tauri and React.
    
    - [kingwingfly/bilibili-downloader-rs](https://github.com/kingwingfly/bilibili-downloader-rs) <img src="https://img.shields.io/github/stars/kingwingfly/bilibili-downloader-rs?style=social"/> : Bilibili Downloader. A bilibili video downloader app built by Tauri, Vue and Rust!
    
    - [pacholoamit/pachtop](https://github.com/pacholoamit/pachtop) <img src="https://img.shields.io/github/stars/pacholoamit/pachtop?style=social"/> : Cross-platform (Linux, WIndows, MacOS) Desktop GUI system monitor, built with Rust & Tauri.
    
    - [lecepin/douyin-downloader](https://github.com/lecepin/douyin-downloader) <img src="https://img.shields.io/github/stars/lecepin/douyin-downloader?style=social"/> : 使用非常简单的抖音视频无水印下载工具。支持下单个视频,以及下载某个人的所有视频。(采用rust+tauri编写,安装包非常小)。
    
    - [lecepin/desktop-webcam](https://github.com/lecepin/desktop-webcam) <img src="https://img.shields.io/github/stars/lecepin/desktop-webcam?style=social"/> : 使用 webassembly 通过 tauri 封装的桌面摄相头。
    
    - [pot-app/pot-desktop](https://github.com/pot-app/pot-desktop) <img src="https://img.shields.io/github/stars/pot-app/pot-desktop?style=social"/> : 🌈一个跨平台的划词翻译软件 | A cross-platform translation software. [pot.pylogmon.com](https://pot.pylogmon.com/)
    
    - [conaticus/FileExplorer](https://github.com/conaticus/FileExplorer) <img src="https://img.shields.io/github/stars/conaticus/FileExplorer?style=social"/> : Fast file explorer written with Tauri and React.
    
    - [mxismean/image-tiny-tauri](https://github.com/mxismean/image-tiny-tauri) <img src="https://img.shields.io/github/starsmxismean/image-tiny-tauri?style=social"/> : Tauri 项目:图片压缩应用。一款小而美的图片压缩工具, 支持 png、jpg、gif 三种图片格式压缩。 该工具不依赖服务端,只需在客户端就可以完成压缩工作。您只需拖拽你的图片文件到该应用窗口即可。
    
    - [BD777/imageview](https://github.com/BD777/imageview) <img src="https://img.shields.io/github/stars/BD777/imageview?style=social"/> : Image viewer by tauri. A image viewer by tauri. 用来看图的软件,当然,看漫画也是很方便的。
    

Blogs

awesome-rust-list's People

Contributors

codingonion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.