How to stop fighting with coherence and start writing context-generic trait impls - RustLab 2025 transcript
This blog post contains the slides and transcript for my presentation of Context-Generic Programming at RustLab 2025.
Context-Generic Programming Blog
This blog post contains the slides and transcript for my presentation of Context-Generic Programming at RustLab 2025.
CGP v0.7.0 has been released, bringing a major expansion to the CGP macro toolkit. The centerpiece of this release is a suite of new annotations — #[cgpfn], #[implicit], #[uses], #[extend], #[useprovider], and #[use_type] — that let you write context-generic code in plain function syntax with dramatically less boilerplate than before.
If you have visited our website before, you might have noticed that the CGP project website has received a beautiful overhaul redesign with a fresh look and feel. This transformation comes from our migration away from Zola to Docusaurus, a move driven by our commitment to significantly expand and improve the documentation for CGP.
We're excited to announce the release of cgp v0.6.1, which brings several quality-of-life improvements to Context-Generic Programming in Rust. This release focuses on making CGP more accessible to developers new to the paradigm while also providing better debugging and verification tools for complex provider setups.
I am excited to announce the release of cgp-serde, a modular serialization library for Serde that leverages the power of Context-Generic Programming (CGP).
It has only been two weeks since v0.5.0 was released, yet we are already introducing another major update. CGP v0.6.0 brings significant improvements to the ergonomics of implementing providers and contexts, making it easier and more intuitive for developers to build on top of CGP.
CGP v0.5.0 has been released, bringing a range of new features and some breaking changes as part of the ongoing effort toward stabilization. This version introduces several improvements to make CGP more practical, expressive, and easier to use in real-world Rust projects.
This is the fourth part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first, second and third parts here.
This is the third part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first and second parts here.
This is the second part of the blog series on Programming Extensible Data Types in Rust with CGP. You can read the first part here.
I’m excited to announce the release of CGP v0.4.2, a major milestone that significantly expands the expressive power of generic programming in Rust. With this release, CGP introduces full support for extensible records and variants, unlocking a range of new capabilities for developers working with highly modular and reusable code.
We are excited to announce the release of CGP v0.4.1! This release brings several new features, quality-of-life improvements for macro usages, and a new crate cgp-handler.
I am thrilled to introduce Hypershell, a modular, type-level domain-specific language (DSL) for writing shell-script-like programs in Rust. Hypershell is powered by context-generic programming (CGP), which makes it possible for users to extend or modify both the language syntax and semantics.
It's been a while since the last update, but the wait is over! I'm thrilled to announce the release of v0.4.0 of the cgp crate. This version is packed with tons of new features and delivers a dramatically smoother developer experience!
I'm excited to announce the release of v0.3.0 of the cgp crate, along with several new chapters of the CGP Patterns book! This post highlights some of the key features and updates included in this release.
Welcome everyone! This blog post marks the launch of the context-generic programming (CGP) project,