Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.
rust-lang.github.io
Feature Name: associated_type_bounds Start Date: 2018-01-13 RFC PR: rust-lang/rfcs#2289 Rust Issue: rust-lang/rust#52662 Summary Introduce the bound form MyTrait<AssociatedType: Bounds>, permitted anywhere a bound of the form MyTrait<Associ...
Updates from the Rust Project 2024-03-20 ~4 min read
rust-lang.github.io
Feature Name: N/A Start Date: 2022-01-19 RFC PR: rust-lang/rfcs#3373 Tracking Issue: rust-lang/rust#120363 Summary Add a warn-by-default lint for items inside functions or expressions that implement methods or traits that are visible outsid...
Updates from the Rust Project 2024-02-28 ~2 min read
rust-lang.github.io
Rust API Guidelines This is a set of recommendations on how to design and present APIs for the Rust programming language. They are authored largely by the Rust library team, based on experiences building the Rust standard library and other...
Rust API Guidelines Book 2024-01-01 ~1 min read
rust-lang.github.io
Rust API Guidelines Checklist • Naming (crate aligns with Rust naming conventions) • [ ] Casing conforms to RFC 430 (C-CASE) • [ ] Ad-hoc conversions follow as_, to_, into_ conventions (C-CONV) • [ ] Getter names follow Rust convention (C-G...
Rust API Guidelines Book 2024-01-01 ~3 min read
rust-lang.github.io
Naming Casing conforms to RFC 430 (C-CASE) Basic Rust naming conventions are described in RFC 430. In general, Rust tends to use UpperCamelCase for "type-level" constructs (types and traits) and snake_case for "value-level" constructs. More...
Rust API Guidelines Book 2024-01-01 ~7 min read
rust-lang.github.io
Interoperability Types eagerly implement common traits (C-COMMON-TRAITS) Rust's trait system does not allow orphans: roughly, every impl must live either in the crate that defines the trait or the implementing type. Consequently, crates tha...
Rust API Guidelines Book 2024-01-01 ~7 min read
rust-lang.github.io
Macros Input syntax is evocative of the output (C-EVOCATIVE) Rust macros let you dream up practically whatever input syntax you want. Aim to keep input syntax familiar and cohesive with the rest of your users' code by mirroring existing Rus...
Rust API Guidelines Book 2024-01-01 ~3 min read
rust-lang.github.io
Documentation Crate level docs are thorough and include examples (C-CRATE-DOC) See RFC 1687. All items have a rustdoc example (C-EXAMPLE) Every public module, trait, struct, enum, function, method, macro, and type definition should have an...
Rust API Guidelines Book 2024-01-01 ~6 min read
rust-lang.github.io
Predictability Smart pointers do not add inherent methods (C-SMART-PTR) For example, this is why the Box::into_raw function is defined the way it is. impl<T> Box<T> where T: ?Sized { fn into_raw(b: Box<T>) -> *mut T { /* ... */ } } let boxe...
Rust API Guidelines Book 2024-01-01 ~5 min read
rust-lang.github.io
Flexibility Functions expose intermediate results to avoid duplicate work (C-INTERMEDIATE) Many functions that answer a question also compute interesting related data. If this data is potentially of interest to the client, consider exposing...
Rust API Guidelines Book 2024-01-01 ~5 min read
rust-lang.github.io
Type safety Newtypes provide static distinctions (C-NEWTYPE) Newtypes can statically distinguish between different interpretations of an underlying type. For example, a f64 value might be used to represent a quantity in miles or in kilomete...
Rust API Guidelines Book 2024-01-01 ~5 min read
rust-lang.github.io
Dependability Functions validate their arguments (C-VALIDATE) Rust APIs do not generally follow the robustness principle: "be conservative in what you send; be liberal in what you accept". Instead, Rust code should enforce the validity of i...
Rust API Guidelines Book 2024-01-01 ~2 min read
rust-lang.github.io
Debuggability All public types implement Debug (C-DEBUG) If there are exceptions, they are rare. Debug representation is never empty (C-DEBUG-NONEMPTY) Even for conceptually empty values, the Debug representation should never be empty. let...
Rust API Guidelines Book 2024-01-01 ~1 min read
rust-lang.github.io
Future proofing Sealed traits protect against downstream implementations (C-SEALED) Some traits are only meant to be implemented within the crate that defines them. In such cases, we can retain the ability to make changes to the trait in a...
Rust API Guidelines Book 2024-01-01 ~4 min read
rust-lang.github.io
Necessities Public dependencies of a stable crate are stable (C-STABLE) A crate cannot be stable (>=1.0.0) without all of its public dependencies being stable. Public dependencies are crates from which types are used in the public API of th...
Rust API Guidelines Book 2024-01-01 ~2 min read
rust-lang.github.io
External links • RFC 199 - Ownership naming conventions • RFC 344 - Naming conventions • RFC 430 - Naming conventions • RFC 505 - Doc conventions • RFC 1574 - Doc conventions • RFC 1687 - Crate-level documentation • Elegant Library APIs in...
Rust API Guidelines Book 2024-01-01 ~1 min read
rust-lang.github.io
Feature Name: trait_upcasting Start Date: 2022-12-10 RFC PR: rust-lang/rfcs#3324 Rust Issue: rust-lang/rust#65991 Design repository: rust-lang/dyn-upcasting-coercion-initiative Summary Enable upcasts from dyn Trait1 to dyn Trait2 if Trait1...
Updates from the Rust Project 2023-11-29 ~14 min read
rust-lang.github.io
Feature Name: trim-paths Start Date: 2021-05-24 RFC PR: rust-lang/rfcs#3127 Rust Issue: rust-lang/rust#111540 Summary Cargo should have a profile setting named trim-paths to sanitise absolute paths introduced during compilation that may be...
Updates from the Rust Project 2023-11-08 ~15 min read
rust-lang.github.io
Feature Name: macro_metavar_expr Start Date: 2021-01-23 RFC PR: rust-lang/rfcs#3086 Rust Issue: rust-lang/rust#83527 Summary Add new syntax to declarative macros to give their authors easy access to additional metadata about macro metavaria...
Updates from the Rust Project 2023-08-23 ~10 min read
rust-lang.github.io
Feature Name: c_str_literal Start Date: 2022-11-15 RFC PR: rust-lang/rfcs#3348 Rust Issue: rust-lang/rust#105723 Summary c"…" string literals. Motivation Looking at the amount of cstr!() invocations just on GitHub (about 3.2k files with mat...
Updates from the Rust Project 2023-05-10 ~4 min read
"I have written in dozens of computer languages, including specialized ones that were internal to Pixar (including one I designed). I spent decades wri..."

Search tips

Type anything to search across articles, videos (including conference talks), podcasts, research, crates, and Rust API documentation. These operators give you finer control — click an example to try it.

Find pages containing all your words. Pages where the words appear together rank higher.
Quote part of your query to keep those words together as an exact phrase within a larger search.
Wrap the whole query in quotes for a verbatim search that matches text exactly, punctuation and all — perfect for Rust syntax. Needs at least 3 characters.
Put ! first to open the top result immediately. Quote the whole query for a literal leading bang, as in '!Send'. Bangs elsewhere, such as println!, stay literal. Browser and launcher shortcuts can invoke this directly. See search integrations.
Limit results to a single site. Works on its own () too. One site: per search.

Use the tabs and filters above the results to narrow by content type, publication year, and sort order.