RSSAmplifier

Blog

Context-Generic Programming Blog

Context-Generic Programming Blog

contextgeneric.devRSS feed ↗16 posts

Latest posts

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.

Supercharge Rust functions with implicit arguments using CGP v0.7.0

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.

CGP has a new website, and why we moved from Zola to Docusaurus

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.

CGP v0.6.1 Release: Improving Ergonomics and Debugging

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.

Announcing cgp-serde: A modular serialization library for Serde powered by CGP

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).

CGP v0.6.0 Release: Major ergonomic improvements for provider and context implementations

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 Release: Auto dispatchers, extensible datatype improvements, monadic computation, RTN emulation, modular serde, and more

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.

Programming Extensible Data Types in Rust with CGP - Part 4: Implementing Extensible Variants

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.

Programming Extensible Data Types in Rust with CGP - Part 3: Implementing Extensible Records

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.

Programming Extensible Data Types in Rust with CGP - Part 2: Modular Interpreters and Extensible Visitors

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.

Programming Extensible Data Types in Rust with CGP - Part 1: Modular App Construction and Extensible Builders

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.

CGP v0.4.1 Release: new cgp-handler crate, improved preset macros, and more.

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.

Hypershell: A Type-Level DSL for Shell-Scripting in Rust

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.

CGP v0.4.0 Release: Unlocking Easier Debugging, Extensible Presets, and More

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!

CGP Updates: v0.3.0 Release and New Chapters

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.

Announcing Context-Generic Programming (Early Preview)

Welcome everyone! This blog post marks the launch of the context-generic programming (CGP) project,