Vermell – epoll を使用した最小限の依存関係なし C++ Web フレームワーク
Vermell – Minimal, dependency-free C++ web framework using epoll
Vermell は、モダン C++ 環境向けの最小限で依存関係のない Web フレームワークです。1 つのヘッダーファイルと 1 つの静的ライブラリのみで構成され、ランタイム、ガベージコレクタ、フレームワーク固有の DSL、バンドルされた依存関係はありません。内部的には epoll を使用したイベント駆動型エンジンで、リクエストを処理し、ワーカー スレッド プールに作業を渡します。これにより、高負荷時でも高速で、遅いクライアントに対しても耐性があります。Linux の基本 API (ソケット、epoll、pthreads、fork/exec) のみを使用し、C++20 と g++ があれば、x86_64、ARM、Android (Termux)、WSL、Raspberry Pi、コンテナなど、あらゆる Linux 環境でビルド可能です。デフォルトでタイムアウト、リクエスト数制限、接続数制限、レンダリング jail などのセキュリティ機能が有効になっています。JSON DOM、C++ テンプレート、連鎖可能なセッターによる設定、ドキュメントなどが提供されています。インストールは、GitHub からリポジトリをクローンし、CMake を使用してビルドするか、apt パッケージマネージャーを使用します。基本的なサーバーは、Router インスタンスを作成し、ポートを設定し、ルーティングとハンドラを登録して listen() を呼び出すことで実装できます。ハンドラは C++ ラムダで記述され、キャプチャ リストを使用して外部の状態にアクセスできます。設定は router.configure() または連鎖可能なセッターで行い、実行時に読み取ることも可能です。ファイル配信機能は、拡張子に基づいて Content-Type を自動検出し、SPA (Single Page Application) のサポートやキャッシュ制御も可能です。compose() と render() 関数を使用して HTML ページを組み立てたり、プレースホルダーを埋めたりできます。ファイル配信機能は、指定されたルート ディレクトリに制限され、ファイル サイズの上限も設定されています。プロセス情報 (vermell::process) や環境変数 (.env ファイルの自動読み込みなど) も利用可能です。サンプルコードやテスト用のスクリプトも提供されています。
- Vermellはepollを使用したイベント駆動型エンジンとワーカースレッドプールを採用したC++ Webフレームワークが公開された
- C++20とg++のみでx86_64、ARM、Android (Termux)、WSL、Raspberry Pi、コンテナなどあらゆるLinux環境でビルド可能な依存関係なしの設計
Vermellは依存関係ゼロのC++ Webフレームワークであり、epollベースのイベント駆動設計とワーカースレッドプールにより高負荷環境での性能と耐性を両立しています。投資判断の観点では、特定の企業や製品の商業的価値に直結する画期的なイノベーションというよりは、OSSエコシステム内でのツール提供であり、直接的な投資インパクトは限定的です。