it.xnews.jp
生成: 2026-10-12 読了 約 4 分 model: claude-haiku-5-5 原文: https://prophitt.me/writing/a-modern-web-app-in-c raw.md

C言語とCGIで商用Webアプリを構築、OpenBSD上で提供する事例

Corey Prophitt氏は、C言語で書いたCGIプログラムをOpenBSD上で提供する商用Webプロダクト「marketyour.games」を2026年に公開したと説明している。ユーザーアカウント、決済、メール送信を備えたアプリを、フレームワークを使わずに構築した。

Corey Prophitt氏は、自身の商用Webプロダクト「marketyour.games」の構成と開発過程を記事で紹介している。C言語で書かれたこのアプリは、OpenBSD上でhttpdとCGIを用いて提供されている。

発表内容

marketyour.gamesは、ユーザーアカウント、コンテンツクリエイター向けの検索ダッシュボード、コンテンツを整理するフォルダ機能を備えたWebプロダクトである。決済にはStripe、トランザクションメールにはPostmarkを利用している。JavaScriptを必要としないプログレッシブエンハンスメントに従って設計されている。

著者は、1994年にはCプログラムを書いてcgi-binディレクトリに置き、Apacheがリクエストごとにそれをforkさせることで動的サイトを作れたと説明している。そこから「Thirty-two years」が経過した現在、ほぼ同じ技術で商用製品を出荷したと述べている。

著者は cgi.h について「Maybe I'll publish cgi.h as a start」と述べ、公開する可能性があるとしている。

技術スタック

著者はこの構成を「BCHS」と呼び、OpenBSD、C、httpd、SQLiteで構成されると説明している。

著者はプラグインを使わずにクラシックVimを利用している。また、Cookieの解析、クエリとフォームの解析、検証、入力エスケープを扱う単一ヘッダファイル cgi.h を作成した。

依存ライブラリとビルド

著者は3つのライブラリを使用しており、その用途は次のとおりである。

ビルド依存としては、libcurlとlibsodiumの2つが該当する。SQLiteは公式のamalgamationビルドとして同梱され、libcurlとlibsodiumも同梱してプロジェクトの一部としてビルドされる。クリーンビルドは「a few seconds」、再ビルドは「less than half a second」で完了する。

CGIの仕様と背景

CGI 1.1仕様は2004年に公表され、それ以降変更されていないと記事は述べている。著者は、ライブラリの信頼性を比較する例として、週間ダウンロード数が「eleven」にとどまるパッケージを挙げている。そのパッケージのオーナーは2019年に離脱したという。

筆者の見立て

この記事は元記事の事実のみに基づいて自動生成されました。

出典

この記事をシェア