# rust-unofficial/patterns

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rust-unofficial-patterns).**

8,843 stars · 409 forks · Handlebars · MPL-2.0

## Links

- GitHub: https://github.com/rust-unofficial/patterns
- Homepage: https://rust-unofficial.github.io/patterns/
- awesome-repositories: https://awesome-repositories.com/repository/rust-unofficial-patterns.md

## Topics

`antipatterns` `idioms` `patterns` `reference` `rust` `rust-lang`

## Description

A catalogue of Rust design patterns, anti-patterns and idioms

## Tags

### Software Engineering & Architecture

- [Rust Pattern Collections](https://awesome-repositories.com/f/software-engineering-architecture/design-pattern-collections/rust-pattern-collections.md) — Serves as the primary Rust design pattern reference with adapted patterns and idioms.
- [Rust Anti-Pattern Detection](https://awesome-repositories.com/f/software-engineering-architecture/anti-patterns/rust-anti-pattern-detection.md) — Provides guidance on detecting and avoiding Rust anti-patterns.
- [Rust Anti-Pattern Guides](https://awesome-repositories.com/f/software-engineering-architecture/anti-patterns/rust-anti-pattern-guides.md) — Documents common Rust anti-patterns to avoid for better code quality. ([source](https://rust-unofficial.github.io/patterns/))
- [Design Patterns](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns.md) — Catalogs proven design solutions for recurring software engineering problems. ([source](https://rust-unofficial.github.io/patterns/))
- [Rust-Specific Adaptations](https://awesome-repositories.com/f/software-engineering-architecture/design-patterns/rust-specific-adaptations.md) — Provides Rust-specific adaptations of design patterns leveraging ownership and borrowing. ([source](https://rust-unofficial.github.io/patterns/))
- [Rust Conventions](https://awesome-repositories.com/f/software-engineering-architecture/idiomatic-coding-standards/rust-conventions.md) — Documents Rust community conventions for writing idiomatic code.
- [Type System Enforcements](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/compile-time-architectural-patterns/type-system-enforcements.md) — Provides compile-time enforcement of design patterns through Rust's type system and linting.
- [Zero-Cost Polymorphism](https://awesome-repositories.com/f/software-engineering-architecture/trait-based-service-abstractions/zero-cost-polymorphism.md) — Demonstrates trait-based abstraction patterns for zero-cost polymorphism.
- [Zero-Cost Abstraction Patterns](https://awesome-repositories.com/f/software-engineering-architecture/zero-overhead-abstractions/zero-cost-abstraction-patterns.md) — Documents zero-cost abstraction patterns that compile to efficient machine code.
- [Rust Lint Management](https://awesome-repositories.com/f/software-engineering-architecture/compilation-warning-systems/rust-lint-management.md) — Documents Rust compiler warning and lint management strategies.
- [Warning-as-Error Enforcements](https://awesome-repositories.com/f/software-engineering-architecture/compilation-warning-systems/warning-as-error-enforcements.md) — Documents how to enforce strict compiler warnings as errors during Rust builds. ([source](https://rust-unofficial.github.io/patterns/anti_patterns/deny-warnings.html))
- [Interface-Based Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/component-abstractions/interface-based-decoupling.md) — Promotes relying on abstract interfaces rather than concrete implementations to reduce coupling. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Design by Contract](https://awesome-repositories.com/f/software-engineering-architecture/design-by-contract.md) — Defines formal preconditions, postconditions, and invariants to guarantee correct component interaction. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Encapsulation & Abstraction](https://awesome-repositories.com/f/software-engineering-architecture/encapsulation-abstraction.md) — Bundles data with methods and restricts direct access to prevent unauthorized modification. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Lint Denial Overrides](https://awesome-repositories.com/f/software-engineering-architecture/runtime-configuration-overrides/build-time-overrides/lint-denial-overrides.md) — Documents how to override lint denials at build time for flexibility. ([source](https://rust-unofficial.github.io/patterns/anti_patterns/deny-warnings.html))
- [Command Query Separation](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/structural-design-paradigms/command-query-separation.md) — Distinguishes functions that change state from those that return data to prevent side effects in queries. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Composition Over Inheritance](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/structural-design-paradigms/composition-over-inheritance.md) — Advocates reusing behavior by containing instances rather than inheriting from a base class. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Interface Segregation Principles](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/foundational-theory-and-guidance/software-architecture-principles/solid-principles/interface-segregation-principles.md) — Provides many client-specific interfaces instead of one general-purpose interface to avoid forcing dependencies. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Single Responsibility Principles](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/foundational-theory-and-guidance/software-architecture-principles/solid-principles/single-responsibility-principles.md) — Ensures each module has only one reason to change, aligning with a single part of the specification. ([source](https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html))
- [Rust Adaptations](https://awesome-repositories.com/f/software-engineering-architecture/software-design-principles/rust-adaptations.md) — Adapts general design principles like composition over inheritance and design by contract for Rust.

### Part of an Awesome List

- [Code Quality and Linting](https://awesome-repositories.com/f/awesome-lists/devtools/code-quality-and-linting.md) — Documents lint-driven code quality practices enforced at build time.
- [Pattern Catalogues](https://awesome-repositories.com/f/awesome-lists/devtools/design-patterns-and-architecture/pattern-catalogues.md) — Curates a collection of reusable design patterns, anti-patterns, and idioms for Rust.

### Development Tools & Productivity

- [Lint Denials & Warnings](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/compiler-configurations/rust-compilation-configurations/lint-denials-warnings.md) — Provides instructions for controlling Rust compiler warnings and lint denials to enforce code quality.
- [Selective Deny Configurations](https://awesome-repositories.com/f/development-tools-productivity/linting-configurations/selective-deny-configurations.md) — Documents how to selectively deny specific lints as errors in Rust. ([source](https://rust-unofficial.github.io/patterns/anti_patterns/deny-warnings.html))

### Education & Learning Resources

- [Rust Idiom Collections](https://awesome-repositories.com/f/education-learning-resources/programming-idioms/rust-idiom-collections.md) — Documents Rust community idioms for writing idiomatic, maintainable code. ([source](https://rust-unofficial.github.io/patterns/))

### Operating Systems & Systems Programming

- [Deterministic Cleanup Patterns](https://awesome-repositories.com/f/operating-systems-systems-programming/manual-memory-management/ownership-based-memory-management/deterministic-cleanup-patterns.md) — Documents ownership-based resource management patterns for deterministic cleanup.

### Programming Languages & Runtimes

- [Type-State Patterns](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/type-systems/typed-state-management/type-safe-state-architectures/type-state-patterns.md) — Documents type-state programming patterns that encode state transitions in the type system.
- [Anti-Pattern References](https://awesome-repositories.com/f/programming-languages-runtimes/rust-pattern-libraries/anti-pattern-references.md) — Provides a reference for Rust anti-patterns to discourage problematic practices.
- [Learning Resource Curation](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/language-specific-resources/systems-and-performance-languages/rust-resources/learning-resource-curation.md) — Curates books, talks, and guidelines for learning Rust programming techniques.
