<?xml version="1.0" encoding="UTF-8"?><rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>All The code generation Shit | Ciprian Mandache</title>
<atom:link href="https://ciprian.51k.eu/tag/code-generation/feed/" rel="self" type="application/rss+xml" /><link></link>
<description>Mostly writing code that does stuff...</description>
<lastBuildDate>Sun, 18 Oct 2026 23:21:18 +0000</lastBuildDate>
<language>en-US</language>
<sy:updatePeriod>
hourly	</sy:updatePeriod>
<sy:updateFrequency>
1	</sy:updateFrequency><image>
<url>https://ciprian.51k.eu/upld/2019/02/cropped-terminal-icon-32x32.png</url><title>All The code generation Shit | Ciprian Mandache</title><link></link>
<width>32</width>
<height>32</height>
</image>
<item><title>go-asyncapi: load AsyncAPI 3 specs in Go</title><link>https://ciprian.51k.eu/go-asyncapi-load-asyncapi-3-specs-in-go/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Thu, 15 Oct 2026 21:06:39 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[asyncapi]]></category>
<category><![CDATA[claude code]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[event-driven]]></category>
<category><![CDATA[go-asyncapi]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[json]]></category>
<category><![CDATA[json schema]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[package]]></category>
<category><![CDATA[parser]]></category>
<category><![CDATA[websocket]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/go-asyncapi-your-asyncapi-spec-is-a-fucking-graph-wearing-a-yaml-costume/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-300x150.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/go-asyncapi-linocut-2.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />go-asyncapi reads AsyncAPI 3 documents in Go and hands you servers, channels, operations and messages as plain structs, with every $ref on the way to them followed across files, every ...]]></description>
</item>
<item><title>Why am I still hand-typing WebSocket structs from an AsyncAPI spec?</title><link>https://ciprian.51k.eu/gen-asyncapi-why-am-i-still-hand-typing-websocket-structs/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Thu, 15 Oct 2026 18:25:51 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[api]]></category>
<category><![CDATA[asyncapi]]></category>
<category><![CDATA[cli-tool]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[ctxerrors]]></category>
<category><![CDATA[gen-asyncapi]]></category>
<category><![CDATA[go generate]]></category>
<category><![CDATA[Go programming language]]></category>
<category><![CDATA[go-asyncapi]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[json]]></category>
<category><![CDATA[json schema]]></category>
<category><![CDATA[library]]></category>
<category><![CDATA[typescript]]></category>
<category><![CDATA[validation]]></category>
<category><![CDATA[websocket]]></category>
<category><![CDATA[websocket client]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/gen-asyncapi-stop-hand-typing-your-fucking-websocket-structs/</guid><description><![CDATA[<img
width="300" height="150" src="https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-300x150.jpg" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" srcset="https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-300x150.jpg 300w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-768x384.jpg 768w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11-600x300.jpg 600w, https://ciprian.51k.eu/upld/2026/10/gen-asyncapi-noir-s11.jpg 1024w" sizes="(max-width: 300px) 100vw, 300px" />You shouldn&#8217;t be, because the AsyncAPI spec already says exactly what every message looks like and a machine can retype it better than you. I wrote gen-asyncapi so an AsyncAPI ...]]></description>
</item>
<item><title>oapixconstgen: Make Your OpenAPI Spec the Source of Truth for Go Constants</title><link>https://ciprian.51k.eu/oapixconstgen-make-your-openapi-spec-the-source-of-truth-for-go-constants/</link>
<dc:creator><![CDATA[Ciprian Mandache]]></dc:creator>
<pubDate>Wed, 28 Jan 2026 05:22:03 +0000</pubDate>
<category><![CDATA[Golang]]></category>
<category><![CDATA[cli]]></category>
<category><![CDATA[code generation]]></category>
<category><![CDATA[golang]]></category>
<category><![CDATA[openapi]]></category>
<category><![CDATA[yaml]]></category>
<guid
isPermaLink="false">https://ciprian.51k.eu/oapixconstgen-make-your-openapi-spec-the-source-of-truth-for-go-constants/</guid><description><![CDATA[<img
width="300" height="228" src="https://ciprian.51k.eu/upld/2026/01/Screenshot_2026-05-14_08-27-38-300x228.png" class="webfeedsFeaturedVisual wp-post-image" alt="" style="display: block; margin-bottom: 5px; clear:both;max-width: 100%;" link_thumbnail="" decoding="async" fetchpriority="high" srcset="https://ciprian.51k.eu/upld/2026/01/Screenshot_2026-05-14_08-27-38-300x228.png 300w, https://ciprian.51k.eu/upld/2026/01/Screenshot_2026-05-14_08-27-38.png 553w" sizes="(max-width: 300px) 100vw, 300px" />x-constants: int: defaultPageSize: &#38;defaultPageSize 20 maxPageSize: &#38;maxPageSize 100 uint: minPasswordLength: &#38;minPasswordLength 8 float64: requestTimeout: &#38;requestTimeout 30.5 string: defaultLocale: &#38;defaultLocale "en-US" bool: enableCache: &#38;enableCache true // Code generated by oapixconstgen. DO ...]]></description>
</item>
</channel>
</rss>
<!--
*** This site runs WP Super Minify plugin v2.0.1 - http://wordpress.org/plugins/wp-super-minify ***
*** Total size saved: 3.177% | Size before compression: 7177 bytes | Size after compression: 6949 bytes. ***
-->