Micro services in Rust
- tonic - grpc framework
TODO
- shadow-rs - build time information
- serde_with - serde helpers
- tokio - async runtime
- time - time handling
- tracing - tracing and log
- SeaOrm - db orm
- tabled - pretty print
- shadow-rs - build info
- sysinfo - system cpu/mem info
- sentry - sentry profiling
- flamegraph - flame graph
- num_traits - num traits for generic math
- malachite-bigint - a faster drop-in replacement for num-bigint
- dashmap - concurrent hashmap, !!may dead lock https://dev.to/acter/beware-of-the-dashmap-deadlock-lij
- once_cell - lazy static without macros
- charming - visualization
- auto_impl - Automatically implement traits for common smart pointers
- bytes
- async-trait
- cacache - disc cache
- r2d2 - db generic connection pool
- redis - redis client
- async-compat - Compatibility adapter between tokio and futures
- autometrics - metrics and tracing
- lazy_format - lazy formatting
- convi - safe conversion
- tap - position pipeline
- resiter - iterator helper
- pretty-assertions - pretty assertions
- trybuild - try build in tests
- insta - snapshot testing
- criterion - benchmark testing
- divan - benchmark testing
- arbitrary - construct arbitrary instances of a type
- assert_fs - Filesystem fixtures and assertions for testing
- no-panics - prove no panics in build phase
- educe - procedural macros to help you implement Rust build-int traits quickly.
- validator - struct field validation
- tap - tapping values in method chains
- lazy-static.rs - macro for defining lazy evaluated static variables
- joinery - join iterables with a separator
- chrono - time handling
- time - time handling
- pin-project - pin projection
- pinned-init - Library facilitating safe pinned initialization
- soa-derive - Transform AOS to SOA (Struct of Arrays)
- soapy - another SOA macro
- derive_more - derive traits helper
- rust-derive-builder - generate struct builder, builder pattern
- fakeit - gake data generator
- proptest - Hypothesis-like property testing
- trybuild - Test that certain code variants do not compile.
- embassy - async next-generation framework for embedded applications
- postcard - A serde flavor that's tailored for targets have less ram than our dev machines have cache.
- slotmap - map with typed, unique keys
- mockall - mock object
- strum - enum strings and such
- inherent - make trait methods callable without the trait in scope
- rust-smallvec - Small vector
- smallstr - small str
- compact_str - small str on the stack
- bstr - byte string
- itertools - iterator helpers
- camino - Like Rust's std::path::Path, but UTF-8
- bytemuck - Cast bytes to types safely
- nutype - Rust newtype with guarantees
- job_scheduler - Job scheduler
- tokio-cron-scheduler - tokio cron scheduler
- clokwerk - Job scheduler
- delay-timer - Job scheduler based on time wheel algorithm
- enum_delegate - easily replace dynamic dispatch with an enum.
- auto_enums - allow multiple return types by automatically generated enum
- scopeguard - like defer in golang
- iceoryx2 - IPC
- ratatui - TUI
- downcast-rs - cast trait objects back to the original concrete types
- compact_str - drop in replacement of String.
- uint - Uint crate with generics
- ryu - float to string conversion
- itoa - integer to string conversion
- winnow - write parser by hand.
- parse-display - derive macro, Display and FromStr
- miette - Fancy extension for std::error::Error with pretty, detailed diagnostic printing.
- ariadne - A fancy diagnostics & error reporting crate
- nolife - construct a struct that contain reference without a lifetime.
- abi_stable - rust plugin system
- RustFFT - SIMD FFT
- ferrilab - bitvec related crates
- rug - integers and floating-point numbers with arbitrary precision
- cve-rs - memory vulnerabilities
- thread-manager - thread manager
- happylock - lock free mutex
- listeners - get processes listening on a TCP port
- testresult - anyhow for tests
- fastbloom - bloom filter
- symbolica - computer algebra system
- deku - bit-level serialization/deserialization implementations for structs and enums
- profi - multi-threaded profiler
- try-iterator - TryIterator trait
- notify-rust - desktop notification
- strafe - statistics
- kameo - actor model on tokio
- pptr- actor model on tokio
- xtra - actor model on any runtime
- eyre - error handling, anyhow fork, better than anyhow
- scc - concurrent containers, better than dashmap
- wiring - async serialization
- nutype - proc macro that allows adding extra constraints like sanitization and validation
- unfmt - pattern matching library that reverses the interpolation process of
format!
. - enum_dispatch - transforms your trait objects to static dispatch.
- archspec - detect CPU architecture
- serde-sqlite-jsonb - sqlit jsonb serde
- futures-concurrency - Structured concurrency operations for async Rust
- shiva - generate and parse many type of documents
- ffmpeg-sidecar - ffmpeg binary wrapper
- medium-to-markdown - parse medium article to markdown, design: https://medium.com/@harshiljani2002/a-parser-in-rust-to-convert-your-medium-blogs-to-markdown-84173a6c1300
- declarative_enum_dispatch - dynamic dispatch of a trait using an enum
- rauthy - authentication
- balterloadtesting - load testing framework
- faster-hex - faster hex encoding and decoding
- prefixes - simplest proc macros example, attribute-like macros
- unwrap_or_log - unwrap or log
- serde-save - serialization tree for serde, more information than serde-value.
- valuable - object-safe value inspection
- schemars - generate JSON Schema from rust strut
- nunny - non-empty vec
- subenum - proc macro to make sub enum
- deadline - Requires a condition closure to return
true
before the specified duration has elapsed - divan - benchmark
- transitive - Transitive converions through derive macros
- polyit-rs - A no-std library for manipulating polynomials
- comrak - markdown parser and renderer
- arc-swap - atomic operations on Arc.
- rpds - Rust Persistent Data Structures
- haiku-search - wasm fuzzy search library
- petgraph - Graph data structure library
- rustwire - decode protobuf message
- iroh - tookit to build p2p app, with QUIC
- statrs - statistical scientific computing
- fjall - LSM-based embeddeable key-value db in safe rust
- redb - ACID, COW, B-tree embeddeable embeddeable key-value db
- faer-rs - Linear algebra
- nalgebra - Linear algebra
- ndarray - N-dimensional array
- glam-rs - 3d math
- glamour - glam wrapper
- varpro - nonlinear models to data
- impl-for - repeating implementations with type substitutions
- aqueducts - ETL pipeline
- cacache-rs - concurrent async disk cache
- portpicker-rs - pick a free unused port
- bool-to-bitflags - compact multiple bools into a single bitflags field
- rerun - visualization of multimodal data
- https://github.com/ntex-rs/ntex - framework for networking service
- https://github.com/emanguy/rust-rest - rest template
- https://github.com/plabayo/rama - proxy framework
- https://github.com/cloudflare/pingora - proxy framework
- https://github.com/albbus-stack/t5.rs - full rust cross platform framework
- https://github.com/r3bl-org/r3bl-open-core - tui framework
- lambdaworks - zk crypto and math
- lockbud - dead lock detection
- https://github.com/RalfJung/cargo-careful - extra checks
- taplo - toml toolkit
- shuttle-rs - devops
- squawk - postgres sql linter
- cross - cross build tool
- kani - unsafe rust model checker
- cargo-cleanall - clean all cargo build artifacts
- cargo-clean-all - another tool for clean all cargo build artifacts
- kondo - clean up node_modules, target
- nextest - next-generation test runner
- cargo-release - release tool
- git-cliff - changelog generator
- cargo-deny - cargo deny
- mles-rs - message queue
- cargo-multivers - build multiple versions of the same binary, each with a different CPU features set, merged into a single portable optimized binary.
- cargo-unused-features - check unused features.
- cargo-cache - manage cargo cache
- cargo-valgrind - run valgrind with rust
- cargo-dist - release your binary to github release
- firedbg - Time Travel Visual Debugger for Rust
- rudric - .env secret encryption tool
- rustviz - visualize rust ownership and borrowing
- hyperqueue - job scheduler
- cargo-dylint - dynamic lint, another clippy
- zerocopy - unsafe zero copy
- presser - unsafe copy structure data to raw buffer
- release-plz - release github action
- cargo-autoinherit - auto manage workspace deps
- BugStalker - Rust debugger for linux
- portal-tunneler - hole punching
- rlt - load testing tui
- aquascope - generates interactive visualizations of Rust programs
- watchexec - Executes commands in response to file modifications
- just - make alternative
- systemfd - help with auto reloading for projects supporting systemd socket activation
- creusot - a deductive verifier for Rust code
- tokei - count your code, quickly
- cargo-loc - count lines of code across your entire dependency tree
- cargo-geiger - list unsafe rust code
- mintaka - Run long-running processes in parallel
- genson-rs - generate JSON schema
- creusot - deductive verifier for Rust
- get_blessed_rs - get best crates
- quickwit - tracing
- concurrency-programming-via-rust
- axum demo tutor
- Lifetime Kata
- Macro kata
- proc macro workshop
- modern rust
- Learn Rust With Entirely Too Many Linked Lists
- Rust ecosystem
- Rust for Malware Development
- Rust in companies
- https://greptime.com/blogs/2024-05-07-error-rust - error handling for big projects
- https://github.com/tailcallhq/rust-benchmarks - benchmark between pattern matching and dynamic dispatch
- The Little Book of Rust Books - all rust books
- Rust Book Abridged - condensed version of The Rust Programming Language
- Rust on Nails - Full stack Rust book
- The Rustonomicon - The Dark Arts of Advanced and Unsafe Rust Programming
- Little Book of Rust Macros - The Little Book of Rust Macros
- Google Comprehensive Rust - Google Comprehensive Rust
- Rust Atomics and Locks - Rust Atomics and Locks
- Writing Interpreters in Rust: a Guide - Writing Interpreters in Rust: a Guide
- Easy Rust - Easy Rust and some best practice.
- The Rust Performance Book - The Rust Performance Book
- https://github.com/m-ou-se/rust-atomics-and-locks
- https://marabos.nl/atomics/
- https://github.com/rustcc/Rust_Atomics_and_Locks
- https://quinedot.github.io/rust-learning/lifetime-intuition.html
- https://bheisler.github.io/criterion.rs/book/index.html
- https://github.com/skerkour/black-hat-rust
- https://github.com/wiseaidev/dark-web-rust
- https://rustwasm.github.io/book/introduction.html
- https://rust-lang.github.io/wg-async/
- https://rust-unofficial.github.io/patterns/
- https://github.com/LukeMathWalker/zero-to-production
- https://skanehira.github.io/writing-a-wasm-runtime-in-rust/
- https://toetoe55.github.io/async-rt-book/
- https://github.com/tugglecore/rust-tracing-primer
- https://rust-exercises.com/
- https://rust-lang.github.io/async-book/
- https://cglab.ca/~abeinges/blah/everyone-poops/
- https://smallcultfollowing.com/babysteps/blog/2018/04/16/rust-pattern-rooting-an-rc-handle/
- https://smallcultfollowing.com/babysteps/blog/2018/04/24/rust-pattern-precise-closure-capture-clauses/ is no longer needed. Closures now automatically capture only the fields from the struct that they use
- https://smallcultfollowing.com/babysteps/blog/2018/09/02/rust-pattern-iterating-an-over-a-rc-vec-t/
- https://users.rust-lang.org/t/blog-post-series-rust-patterns/20080/10
- https://matklad.github.io/2023/11/15/push-ifs-up-and-fors-down.html
- https://matklad.github.io/2022/11/18/if-a-tree-falls-in-a-forest-does-it-overflow-the-stack.html
- https://ismailmaj.github.io/destructing-trees-safely-and-cheaply
- https://matklad.github.io/2022/05/29/builder-lite.html
- https://matklad.github.io/2022/06/11/caches-in-rust.html
- https://matklad.github.io/2021/07/09/inline-in-rust.html
- https://matklad.github.io/2018/06/04/newtype-index-pattern.html
- https://matklad.github.io/2018/05/24/typed-key-pattern.html
- https://matklad.github.io/2018/05/04/encapsulating-lifetime-of-the-field.html
- https://github.com/rust-unofficial/patterns/issues?q=is%3Aissue+is%3Aopen+label%3AA-pattern+label%3AC-addition
- https://symbolica.io/posts/control_flow_patterns/#block-breaks
- https://ryhl.io/blog/temporary-shared-mutation/
- https://symbolica.io/posts/control_flow_patterns/
- https://github.com/freedit-org/freedit - rust forum
- https://github.com/thewh1teagle/vibe - Transcribe audio in every language