ashtonjamesd/lavandula
ashtonjamesd/lavandula has 985 GitHub stars and 48 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-11 19:11 UTC. Last push 2026-01-13.
a lightweight web framework in c
What you can do
- Controller and routing system
- HTTP endpoint support (GET, POST, etc)
- Controller local/global middleware pipeline
- Minimal dependencies (pure C)
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
Lavandula is a lightweight, fast, and intuitive C web framework designed for building small web applications quickly. It focuses on simplicity, performance, and productivity.
#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.
⚠️ 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
- Request validator library
- 'Hot Restart' mechanism
In Progress
- CORS policy configuration
- Multithreading
- TLS
- PostgreSQL, MySQL integrations, etc
- Rate Limiting
- Session cookies
Installation
To install Lavandula, follow these steps.
- Clone the repository
git clone https://github.com/ashtonjamesd/lavandula.git
cd lavandula
- Run the install script
./install.sh
You should see the following:
[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
- Finish
You should now be able to run the Lavu CLI tool and begin writing your application. Refer to this document for how to use Lavu.
Getting Started
- 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
- Run
lavu run
Your application will run on http://localhost:3000/.
Read the docs
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.
Explore related projects
freeCodeCamp/freeCodeCamp
freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.
458,995 starsdonnemartin/system-design-primer
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.
377,600 starsreact/react
The library for web and native user interfaces.
252,510 starsvuejs/vue
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
212,534 stars