프로젝트 소개

CWIST(C Web development Is Still Trustworthy)는 HTTP/1.1, HTTP/2, QUIC 기반 HTTP/3, WebSocket, WebTransport, 그리고 X25519MLKEM768을 사용하는 하이브리드 포스트 양자 TLS를 포함한 전체 네트워킹 스택을 번들로 제공하는 C17 웹 프레임워크이자 애플리케이션 서버입니다. 임베디드 SQLite ORM, Nuke DB라는 인메모리 읽기 최적화 데이터베이스 엔진, 그리고 와이어 프로토콜 핑거프린팅을 통한 PostgreSQL, MySQL, MariaDB 자동 감지 기능을 제공합니다. 이 프로젝트는 환경 변수로 선택할 수 있는 두 가지 실행 모델을 제공합니다. C1M 리액터 모드는 Linux에서 io_uring을 사용하며(epoll/kqueue 폴백 포함) 높은 동시성의 이벤트 기반 서빙을 지원하고, 클래식 풀 모드는 일반적인 요청 워크로드에서 더 낮은 지연 시간을 위해 각 연결에 자체 스레드를 할당합니다. README에는 처리량, 지연 시간 백분위수, 메모리 사용량, 컨텍스트 스위치를 다루는 Axum, Gin, Spring Boot와의 벤치마크 비교가 포함되어 있으며, 결과는 CI 러너 CPU와 부하 프로파일에 따라 달라진다는 단서가 있습니다. CWIST는 프로젝트 스캐폴딩, 개발 중 핫 리로드, Doxygen 주석으로부터의 OpenAPI 생성, protobuf/gRPC 코드 생성을 위한 명령줄 도구를 제공합니다. gRPC 단항 및 스트리밍 라우트, 헬스 및 리플렉션 서비스, 재시도, 로드 밸런싱을 지원합니다. 또한 이 프레임워크는 Express 스타일 매개변수를 사용하는 라우팅, 미들웨어, 구조화된 로깅, 메트릭 및 헬스 엔드포인트, 속도 제한, HTML/CSS/템플릿 렌더링, JSON 유틸리티를 포함합니다. 설치는 make로 소스에서 빌드하거나 Homebrew 탭을 통해 가능합니다. BoringSSL, lsquic, libttak, SQLite3와 같은 의존성은 벤더링되어 있으며, 정적 라이브러리는 직접 링크하거나 pkg-config를 통해 링크할 수 있습니다. 플랫폼 지원은 Linux, macOS, BSD를 포함합니다.