<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cgo on Luther Monson</title>
    <link>https://luth.io/tags/cgo/</link>
    <description>Recent content in Cgo on Luther Monson</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 05 Apr 2026 19:40:00 -0700</lastBuildDate>
    <atom:link href="https://luth.io/tags/cgo/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Why Rust for PHP Embedding (Not Go)</title>
      <link>https://luth.io/blog/2026/04/why-rust-for-php-embedding/</link>
      <pubDate>Sun, 05 Apr 2026 19:40:00 -0700</pubDate>
      <guid>https://luth.io/blog/2026/04/why-rust-for-php-embedding/</guid>
      <description>&lt;p&gt;Go is my primary language and has been for a long time. When I started building &lt;a href=&#34;https://github.com/ephpm/ephpm&#34;&gt;ePHPm&lt;/a&gt;&#xA;a few weeks ago the obvious move was to write it in Go. ePHPm is a PHP application server. It&amp;rsquo;s one binary that embeds&#xA;the real PHP interpreter (&lt;code&gt;libphp&lt;/code&gt;, the Zend engine) and puts an HTTP server, TLS, a KV cache and a database proxy&#xA;around it. A PHP app doesn&amp;rsquo;t need nginx + php-fpm + Redis to run. &lt;a href=&#34;https://frankenphp.dev/&#34;&gt;FrankenPHP&lt;/a&gt; already proved&#xA;the &amp;ldquo;PHP inside a Go web server&amp;rdquo; idea works, and it works well. I wrote it in Rust anyway. This post covers the&#xA;reasoning, and the part of the design that Rust made easier and the part it didn&amp;rsquo;t. It also has some numbers I should&#xA;have measured before I wrote the design doc instead of after.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
