-
Lavandula는 C 언어 기반의 경량 웹 프레임워크로서, 현대적인 웹 애플리케이션 개발을 위해 설계됨
-
직관적이고 빠른 개발 환경을 제공하며, 불필요한 기능 없이 생산성과 성능에 중점을 둠
-
컨트롤러/라우팅 시스템, 미들웨어 파이프라인, 테스트 프레임워크, SQLite/JSON 라이브러리 등 필수 기능을 대부분 포함함
- 향후 ORM, 세션 쿠키, 정적 파일 서빙, 다양한 데이터베이스 연동 등 기능 확장이 예정되어 있음
-
CLI 기반의 빠른 프로젝트 생성, 내장 유닛 테스트, 환경 변수·로깅 지원 등으로 개발자 편의성 극대화임
Lavandula: 경량의 고성능 C 웹 프레임워크 개요
Lavandula는 현대적인 웹 애플리케이션을 빠르고 간단하게 만들 수 있도록 설계된 C 언어 경량 웹 프레임워크임. 주요 목표는 심플함, 빠른 속도, 높은 생산성으로, 복잡한 기능보다는 꼭 필요한 부분에 집중하며, 무거운 프레임워크의 불필요함을 줄인 형태임.
주요 특징 및 효용성
-
C 기반으로 제작되어 최소한의 의존성만 포함함
-
컨트롤러와 라우팅 시스템을 제공하여 쉽게 HTTP 엔드포인트 구성 가능함
-
GET, POST 등 HTTP 메서드 지원 및 로컬/글로벌 미들웨어 파이프라인 탑재함
-
CLI 툴(lavu) 를 통한 빠른 프로젝트 생성과 실행이 지원됨
-
내장 유닛 테스트 프레임워크, 환경 변수 처리, 로깅, SQLite 통합, JSON 라이브러리 내장임
예시 코드
간단한 예제 코드를 통해 라우트 정의 및 실행 과정이 직관적으로 구성됨
-
appRoute(home)을 이용해 엔드포인트 등록
-
createApp, get, runApp 으로 앱 생성 및 실행
- "Hello, World"를 반환하는 기본 라우트 예시
완성된 기능
-
컨트롤러/라우팅 시스템
- HTTP 메서드별 엔드포인트 지원 (GET, POST 등)
-
미들웨어 파이프라인 (로컬/글로벌)
-
최소 의존성 (순수 C 코드 기반)
-
CLI로 간편한 프로젝트 스캐폴딩
-
내장 유닛 테스트 프레임워크
-
환경 변수 지원, 로깅 시스템
-
SQLite/내장 JSON 라이브러리 통합
개발 진행 중인 기능
- HTTP JSON 바디 파싱
- 세션 쿠키
- CORS 정책 설정
-
Lavender ORM
-
ELA(Embedded Lavandula) HTML 템플릿 엔진
향후 계획(로드맵)
- 레이트 리미팅
- 정적 파일 서빙
- PostgreSQL, MySQL 연동
- 의존성 주입 프레임워크 후보
- 등록 가능 엔드포인트/라우트 리스트 자동화
- JSON 모델 및 CRUD 함수 자동생성 ('lavu model' 명령어 이용)
- URL 파라미터 처리 및 동적 라우팅
프로젝트 생성 및 실행 방법 개요
-
CLI 명령어: lavu new my-project로 프로젝트 폴더 및 기본 구조 자동 생성됨
-
자동 생성되는 파일:
- 설정파일(lavandula.yml)
- 메인/컨트롤러/라우트 소스
- makefile
- 테스트 코드 등
- 빠른 실행: 폴더 이동 후 lavu run으로 바로 로컬 서버 실행 가능, 기본 포트 http://localhost:3000/
문서 및 오픈소스 참여 안내
-
문서: GitHub 저장소 및 api.md 참고 가능
-
기여: Pull Request/이슈 등록 환영
- 주요 이슈: 메모리 누수, 문서 최신화, JSON 라이브러리의 네스티드 리스트 미지원, 테스트 코드 추가
라이선스 및 기타 정보
- 라이선스: MIT License
- 오픈소스 정신에 맞추어 누구나 개선/참여 가능함
-
C(97.3%) 기반으로 작성되어 있으며, Makefile/Shell script 일부 포함됨
Lavandula가 주는 장점 요약
-
C 언어 생태계에서 매우 드문 완전한 웹 프레임워크로, 리소스가 제한된 환경 또는 초고속 서버 구현에 탁월함
- 인기 있는 프레임워크 대비 더 빠른 속도와 낮은 오버헤드로 특화됨
- CLI, 내장 툴, 미니멀 구조로 학습 곡선이 짧고 생산성이 높음