# \#rfc

**URL:** https://forum.crystal-lang.org/tag/rfc/36.md

[Latest](https://forum.crystal-lang.org/latest.md) · [Categories](https://forum.crystal-lang.org/categories.md) · [Tags](https://forum.crystal-lang.org/tags.md)

---

## [Different flavours of \`Enum\`](https://forum.crystal-lang.org/t/different-flavours-of-enum/9131)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 14\
**Last updated:** [September 9, 2026, 9:45pm UTC](https://forum.crystal-lang.org/t/different-flavours-of-enum/9131 "2026-09-09T21:45:41Z")

</div>

There are a number of discussions about potential enhancements to the Enum type. For example, the ability to reopen Enum types to add additional members has been requested in Reopening Enums · Issue #7629 · crystal-lang…

---

## [\[Open Discussion\]: Discussing Crystal’s GC API for alternative memory managers](https://forum.crystal-lang.org/t/open-discussion-discussing-crystal-s-gc-api-for-alternative-memory-managers/9110)

<div class="topic-metadata">

**Author:** [@naqvis](https://forum.crystal-lang.org/u/naqvis)\
**Replies:** 1\
**Last updated:** [August 27, 2026, 5:59pm UTC](https://forum.crystal-lang.org/t/open-discussion-discussing-crystal-s-gc-api-for-alternative-memory-managers/9110 "2026-08-27T17:59:03Z")

</div>

Crystal already has a useful GC-facing runtime surface. Generated allocations are routed through GC.malloc, GC.malloc\_atomic, and GC.realloc, and the standard implementations provide collection controls, explicit freeing…

---

## [RFC 0030: Forward Compatibility Policy - #30](https://forum.crystal-lang.org/t/rfc-0030-forward-compatibility-policy-30/9112)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 0\
**Last updated:** [August 25, 2026, 11:56am UTC](https://forum.crystal-lang.org/t/rfc-0030-forward-compatibility-policy-30/9112 "2026-08-25T11:56:33Z")

</div>

We have a new RFC to discuss the policy for forward compatibility of the compiler, i.e. which old release is able to build a modern compiler. Currently, Crystal 1.0 can build any 1.x release. In the future we plan to li…

---

## [\[RFC\] Surviving the AI PR Flood: The Macro X-Ray & Asymmetric TDD](https://forum.crystal-lang.org/t/rfc-surviving-the-ai-pr-flood-the-macro-x-ray-asymmetric-tdd/8763)

<div class="topic-metadata">

**Author:** [@renich](https://forum.crystal-lang.org/u/renich)\
**Replies:** 23\
**Last updated:** [July 26, 2026, 11:46am UTC](https://forum.crystal-lang.org/t/rfc-surviving-the-ai-pr-flood-the-macro-x-ray-asymmetric-tdd/8763 "2026-07-26T11:46:21Z")

</div>

Context: The era of “VibeCoding” (high-velocity, LLM-assisted development) is here. People are using AI to generate code, and Crystal maintainers are inevitably going to face an influx of AI-generated PRs. Initially, a …

---

## [Eliminate environment modifications](https://forum.crystal-lang.org/t/eliminate-environment-modifications/8533)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 42\
**Last updated:** [May 30, 2026, 1:06pm UTC](https://forum.crystal-lang.org/t/eliminate-environment-modifications/8533 "2026-05-30T13:06:08Z")

</div>

Modifying a process’ environment is generally not thread-safe because it is memory shared between all threads of a process. System functions like setenv or SetEnvironmentVariable are based on a global variable (environ …

---

## [RFC 0021: Percent String Array Literal with Interpolation](https://forum.crystal-lang.org/t/rfc-0021-percent-string-array-literal-with-interpolation/8772)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 2\
**Last updated:** [March 11, 2026, 4:42pm UTC](https://forum.crystal-lang.org/t/rfc-0021-percent-string-array-literal-with-interpolation/8772 "2026-03-11T16:42:13Z")

</div>

This RFC is about ready to be accepted: RFC 0021: Percent String Array Literal with Interpolation by straight-shoota · Pull Request #21 · crystal-lang/rfcs · GitHub Here is the full proposal. It’s time for a final glanc…

---

## [RFC 0025: Modern Process Spawn API](https://forum.crystal-lang.org/t/rfc-0025-modern-process-spawn-api/8773)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 0\
**Last updated:** [March 10, 2026, 10:19am UTC](https://forum.crystal-lang.org/t/rfc-0025-modern-process-spawn-api/8773 "2026-03-10T10:19:57Z")

</div>

This RFC is already pretty advanced, but may need some polishing: RFC 0025: Modern Process Spawn API by straight-shoota · Pull Request #25 · crystal-lang/rfcs · GitHub Here is the full proposal text. We’re still debatin…

---

## [RFC 0020: \`@\[TargetFeature\]\` annotation](https://forum.crystal-lang.org/t/rfc-0020-targetfeature-annotation/8771)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 0\
**Last updated:** [March 10, 2026, 10:14am UTC](https://forum.crystal-lang.org/t/rfc-0020-targetfeature-annotation/8771 "2026-03-10T10:14:29Z")

</div>

This RFC is about ready to be accepted: RFC 0020: \`@\[TargetFeature\]\` annotation by straight-shoota · Pull Request #20 · crystal-lang/rfcs · GitHub Here is the full proposal. It’s time for a final glance that everything …

---

## [RFC: New Motto For Crystal](https://forum.crystal-lang.org/t/rfc-new-motto-for-crystal/7738)

<div class="topic-metadata">

**Author:** [@Barney](https://forum.crystal-lang.org/u/Barney)\
**Replies:** 34\
**Last updated:** [February 28, 2026, 6:43pm UTC](https://forum.crystal-lang.org/t/rfc-new-motto-for-crystal/7738 "2026-02-28T18:43:16Z")

</div>

Hi! I’ve been thinking for a while that Crystal needs a better motto. The language is a joy to write and I find it quite sad that so few people give it an honest go. Among other things, I put some of the blame on the b…

---

## [RFC: Standard Image Types in Stdlib](https://forum.crystal-lang.org/t/rfc-standard-image-types-in-stdlib/8641)

<div class="topic-metadata">

**Author:** [@naqvis](https://forum.crystal-lang.org/u/naqvis)\
**Replies:** 27\
**Last updated:** [February 14, 2026, 2:06pm UTC](https://forum.crystal-lang.org/t/rfc-standard-image-types-in-stdlib/8641 "2026-02-14T14:06:26Z")

</div>

Summary Add standard image types (colors, pixel formats, color spaces) to Crystal’s standard library to provide a common foundation for the image processing ecosystem. Note This RFC is meant to start a discussion about …

---

## [What are your thoughts on a VFS module?](https://forum.crystal-lang.org/t/what-are-your-thoughts-on-a-vfs-module/8670)

<div class="topic-metadata">

**Author:** [@initd](https://forum.crystal-lang.org/u/initd)\
**Replies:** 2\
**Last updated:** [January 26, 2026, 12:47pm UTC](https://forum.crystal-lang.org/t/what-are-your-thoughts-on-a-vfs-module/8670 "2026-01-26T12:47:50Z")

</div>

Hello, crystal community friends! I’m glad to find a community where we can discuss. I’d like to share an issue I encountered. I wrote a license generator with some YAML template files. It runs fine locally, but the si…

---

## [RFC: variable declaration syntax using \`:=\`](https://forum.crystal-lang.org/t/rfc-variable-declaration-syntax-using/7623)

<div class="topic-metadata">

**Author:** [@nobodywasishere](https://forum.crystal-lang.org/u/nobodywasishere)\
**Replies:** 56\
**Last updated:** [June 17, 2025, 3:18pm UTC](https://forum.crystal-lang.org/t/rfc-variable-declaration-syntax-using/7623 "2025-06-17T15:18:20Z")

</div>

Currently, declaring vars happens either transparently through a normal assign (but with the downside of allowing the type to be flexible), or via a type declaration (which requires specifying the type explicitly). I th…

---

## [RFC: Extending API Docs and Compiler Semantic Output](https://forum.crystal-lang.org/t/rfc-extending-api-docs-and-compiler-semantic-output/7314)

<div class="topic-metadata">

**Author:** [@nobodywasishere](https://forum.crystal-lang.org/u/nobodywasishere)\
**Replies:** 20\
**Last updated:** [November 15, 2024, 2:05am UTC](https://forum.crystal-lang.org/t/rfc-extending-api-docs-and-compiler-semantic-output/7314 "2024-11-15T02:05:07Z")

</div>

This is a discussion about this PR which adds support for lib bindings and private/protected objects to show up in API docs, as well as a helper method that enables generating docs for the entire namespace. @straight-sho…

---

## [Cookbook](https://forum.crystal-lang.org/t/cookbook/7170)

<div class="topic-metadata">

**Author:** [@Karl-Goethebier](https://forum.crystal-lang.org/u/Karl-Goethebier)\
**Replies:** 2\
**Last updated:** [September 4, 2024, 5:35pm UTC](https://forum.crystal-lang.org/t/cookbook/7170 "2024-09-04T17:35:11Z")

</div>

Something like The Common Lisp Cookbook would be really nice to have. See also The Perl Cookbook, The Clojure Cookbook and I’m thinking of creating a “crystal cookbook” Furthermore, I am of the opinion that it would s…

---

## [Child workers that are automatically reaped](https://forum.crystal-lang.org/t/child-workers-that-are-automatically-reaped/7047)

<div class="topic-metadata">

**Author:** [@stakach](https://forum.crystal-lang.org/u/stakach)\
**Replies:** 3\
**Last updated:** [August 5, 2024, 12:11pm UTC](https://forum.crystal-lang.org/t/child-workers-that-are-automatically-reaped/7047 "2024-08-05T12:11:53Z")

</div>

Wondering if anyone would be interested in me implementing something like this? TLDR: launched sub-processes that are automatically killed by the OS if your application exits for any reason (seg fault / crashes, force …

---

## [API documentation](https://forum.crystal-lang.org/t/api-documentation/6996)

<div class="topic-metadata">

**Author:** [@Karl-Goethebier](https://forum.crystal-lang.org/u/Karl-Goethebier)\
**Replies:** 1\
**Last updated:** [July 6, 2024, 12:51pm UTC](https://forum.crystal-lang.org/t/api-documentation/6996 "2024-07-06T12:51:12Z")

</div>

It would certainly be very helpful and would serve the further dissemination of the language if the API documentation had even more code examples. I am aware that this is a lot of work. An interesting approach is taken …

---

## [The weight of compiler tools](https://forum.crystal-lang.org/t/the-weight-of-compiler-tools/6888)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 9\
**Last updated:** [June 3, 2024, 8:26pm UTC](https://forum.crystal-lang.org/t/the-weight-of-compiler-tools/6888 "2024-06-03T20:26:16Z")

</div>

The Crystal compiler includes a number of different tools that are helpful for Crystal development. Most of them are part of the compiler because they use compiler internals for code analysis or similar things. And most…

---

## [RFC 0007: Event loop refactor](https://forum.crystal-lang.org/t/rfc-0007-event-loop-refactor/6812)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 3\
**Last updated:** [May 3, 2024, 5:52pm UTC](https://forum.crystal-lang.org/t/rfc-0007-event-loop-refactor/6812 "2024-05-03T17:52:04Z")

</div>

Here is a new draft for an RFC about refactoring the event loop.

---

## [RFC 0003: WaitGroup](https://forum.crystal-lang.org/t/rfc-0003-waitgroup/6553)

<div class="topic-metadata">

**Author:** [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Replies:** 0\
**Last updated:** [February 8, 2024, 5:14pm UTC](https://forum.crystal-lang.org/t/rfc-0003-waitgroup/6553 "2024-02-08T17:14:08Z")

</div>

Here is the first RFC with an actual change proposal for the language: Please join the conversation and try out the new RFC process. Let us know what you think about it!
