# lavandula **Repository Path**: gjmingsg/lavandula ## Basic Information - **Project Name**: lavandula - **Description**: 公众号发现的好玩的框架 - **Primary Language**: C - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-10-17 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README drawing
**Lavandula** is a lightweight, fast, and intuitive C web framework designed for building modern web applications quickly. It focuses on simplicity, performance, and productivity, providing all the essentials without the bloat of heavier frameworks. ```c #include "lavandula.h" appRoute(home, ctx) { return ok("Hello, World", TEXT_PLAIN); } int main() { App app = createApp(); get(&app, "/home", home); runApp(&app); } ``` See `/examples` for more.
[![Lavandula](https://github.com/ashtonjamesd/lavandula/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/ashtonjamesd/lavandula/actions/workflows/ci.yaml) > ⚠️ **Notice:** Lavandula is still in early development and not ready for production use. > Expect frequent breaking changes and incomplete documentation.
## Features - Controller and routing system - HTTP endpoint support (GET, POST, etc) - Controller local/global middleware pipeline - Minimal dependencies (pure C) - Quick project scaffolding via the CLI - Built-in unit testing framework - Environment variable support - Built-in logging - SQLite integration - Built-in JSON library - Static file serving ## In Progress - Auto parse request body JSON (removes need for user to parse and free) - PostgreSL, MySQL integrations, etc - CORS policy configuration - TLS - Multithreading - Rate Limiting - Session cookies ## Installation To install Lavandula, follow these setps. 1. Clone the repository ```bash git clone https://github.com/ashtonjamesd/lavandula.git cd lavandula ``` 2. Run the install script ```bash ./install.sh ``` You should see the following: ```bash [SUCCESS] 🎉 Lavandula installation completed! Quick Start: lavu new my-project # Create a new project cd my-project lavu run # Run your project Documentation: GitHub: https://github.com/ashtonjamesd/lavandula ``` 3. Finish You should now be able to run the Lavu CLI tool and begin writing your application. Refer to [this document](doc/api/cli.md) for how to use Lavu. ## Getting Started 1. Create a new project ``` lavu new myProject ``` This will set up an application folder structure and copy the Lavandula `/src` directory into the created folder structure. This allows you to easily compile the framework and your app together. Output: ``` Setting up Lavandula project 'myProject'... -> Created myProject/lavandula.yml ... 🎉 Lavandula project 'myProject' setup finished successfully! Next steps: 1. cd myProject 2. lavu run ``` 2. Run ``` lavu run ``` Your application will run on http://localhost:3000/. 3. Read the docs - [Getting Started](doc/getting_started/1_installing.md) - [Project Tutorial](doc/tutorial/tutorial.md) ## Contributing Contributions are welcome. Feel free to submit pull requests or open issues for feature requests or bugs. Some places to start: - Possible memory leaks - Application security - Outdated and unfinished documentation (API changes warrant a docs update) ## License Lavandula is registered under the MIT License.