LibCGI is a minimalistic web framework originally created for Bv3's user authentication system. It features an opiniated design that eliminates the need for a server-side template engine. The code is written with great care, and external dependencies are kept to a minimum. LibCGI consists of a JavaScript library for the frontend and a C CGI library for the backend.
Starting with LibCGI 2.0.0, each LibCGI release is accompanied by the release of Cha and Pw, two web projects built on slightly modified version of LibCGI.
Cha is a web-based proof-of-work system that helps websites mitigate spam and excessive scraping.
Pw is the skeleton for a production-ready web-based user management and authentication system. It implements self-service user invitation, account creation, account deletion, password reset, user login and logout. Standard security features such as password hashing, two-factor authentication (HOTP and TOTP), brute-force mitigation, and CSRF prevention are supported. Resource hogging by registered users is also mitigated.
LibCGI releases can be found in this directory. The latest release is 2.0.0 (Oct 17th, 2025). LibCGI 1.x.x has been deprecated.
You may also browse the contents of LibCGI's Git repository here, or clone the repository with:
$ git clone https://git.bv3.dev/~libcgi/repos/libcgi2.git