概要
Lavandulaは、 軽量 かつ 高速 なC言語製Webフレームワーク。 シンプルさ と 生産性、 パフォーマンス に重点。 CLIによる 迅速なプロジェクト作成 や 組み込み機能 が特徴。 SQLiteやJSON、ユニットテストなど 主要機能を内蔵。 今後は 拡張機能 や 他DB対応 も予定。
Lavandula概要
- Lavandula は、 軽量・直感的 なC言語Webフレームワーク
- モダンなWebアプリ を迅速に構築可能
- シンプルさ と パフォーマンス を重視
- 無駄な依存を排除 し、必要十分な機能のみ搭載
- CLIツール によるプロジェクト作成・運用
主な機能
- コントローラー・ルーティングシステム
- HTTPエンドポイント (GET, POST等)対応
- ミドルウェアパイプライン (ローカル/グローバル)
- 純粋なC言語のみ で最小限の依存関係
- CLIによるプロジェクトスキャフォールディング
- 組み込みユニットテストフレームワーク
- 環境変数 サポート
- 組み込みロギング 機能
- SQLite統合
- 組み込みJSONライブラリ
開発中機能
- HTTP JSONボディパース
- セッションクッキー
- CORSポリシー設定
- Lavender ORM
- Embedded Lavandula (ELA)
- HTMLテンプレートエンジン
今後の予定
- レートリミット
- 静的ファイル配信
- PostgreSQL/MySQL対応
- DI(依存性注入)フレームワーク
- ルート/エンドポイント一覧表示
- JSONモデル・関数自動生成
- 例: lavu model User name:string age:int
- User構造体・JSONシリアライズ・CRUDエンドポイント自動生成
- 例: lavu model User name:string age:int
インストール手順
- リポジトリクローン
- git clone https://github.com/ashtonjamesd/lavandula.git
- cd lavandula
- インストールスクリプト実行
- ./install.sh
- [SUCCESS] 🎉 Lavandula installation completed! 表示で完了
クイックスタート
- 新規プロジェクト作成
- lavu new my-project
- cd my-project
- lavu run で起動
- デフォルトで http://localhost:3000/ でアプリが稼働
サンプルコード
- ルート定義例
- #include "lavandula.h"
- appRoute(home) { return ok("Hello, World"); }
- main関数でルート登録・アプリ起動
プロジェクト作成時の出力例
- lavu new myProject 実行時
- myProject/lavandula.yml 作成
- app/app.c, app/controllers/home.c など自動生成
- 🎉 Lavandula project 'myProject' setup finished successfully! 表示
ドキュメント・サポート
- GitHubリポジトリ
- https://github.com/ashtonjamesd/lavandula
- APIドキュメント
- api.md参照
コントリビューション
- プルリク・Issue歓迎
- 改良点
- メモリリーク
- ドキュメント更新
- JSONライブラリのネストリスト未対応
- テストの追加
ライセンス
- MIT License で公開