about-me github-icon

Geruest - A Modern C++ Web Framework

A comprehensive web framework built in C++ that simplifies both frontend and backend development. Geruest handles translations, asset management, routing, and more—letting you focus on building features.

February 2026 - New Features & Improvements

Since December, Geruest has evolved significantly with several powerful features that enhance both developer experience and application performance. These improvements reflect lessons learned from production deployments and developer feedback, focusing on making the framework more flexible and efficient.

Development Mode: To streamline the development process, Geruest now includes a dedicated development mode that can be activated using enableDevMode(). When enabled, the framework no longer saves generated files locally, eliminating the clutter of temporary files in your project directory. This makes it easier to work with the framework during development, as you don't need to constantly clean up generated assets or worry about version control conflicts with temporary files.

WebP Image Conversion: Modern web applications demand optimal image delivery, and Geruest now addresses this with automatic WebP conversion. By calling enableWebPConversion(), the framework automatically converts JPG and PNG images to the more efficient WebP format. This conversion happens transparently and can significantly reduce image file sizes, leading to faster page loads and reduced bandwidth consumption. The framework intelligently handles this conversion while maintaining image quality, making it a zero-effort performance boost.

Enhanced Logging System: Understanding what's happening in your application is crucial, which is why Geruest now features an improved logging system. The new implementation allows developers to choose between verbose and silent output modes depending on their needs. During development, verbose mode provides detailed insights into request processing, file operations, and framework decisions. In production, silent mode keeps logs minimal and focused on important events. This flexibility ensures you have the information you need without being overwhelmed by unnecessary output.

21.12.2025 - JS and CSS merge rework

Reworked the asset merging system to be more intuitive and maintainable. The previous approach required manually maintaining JSON map files that specified which files to merge for each page, which became cumbersome and error-prone as the project grew. The new system automatically reads HTML files and intelligently merges all referenced CSS and JavaScript assets, eliminating manual configuration. This new approach features automatic path normalization, support for nested directory structures, and intelligent file merging to reduce HTTP requests and improve page load performance.

Key Features:

  • Automatic merging of CSS and JS files per page
  • Path normalization with automatic leading slash addition
  • Support for unlimited subdirectory nesting
  • Cross-directory asset references
  • Configurable via setMergeAssets() method

04.12.2025 - Framework Overview

After extensive experience building and maintaining my web server, I recognized the need for a reusable framework that could streamline web application development in C++. This led to the creation of Geruest, a comprehensive web framework designed to handle both frontend and backend requirements efficiently.

Frontend Capabilities:
Geruest excels at managing static resources with its intelligent file merging system. It can combine multiple CSS and JavaScript files into optimized bundles, significantly reducing the number of HTTP requests per page. This not only improves loading times but also allows developers to maintain clean, modular code structures while delivering efficient, production-ready assets to clients.

One of Geruest's standout features is its automatic translation system. The framework uses template pages with placeholder links that are dynamically filled with the appropriate language content. When a user requests a page in a specific language, Geruest generates the translated version and caches it for future requests. This approach ensures fast response times while minimizing resource usage—pages that are never requested in certain languages simply aren't created, saving both processing time and disk space.

Backend Architecture:
On the server side, Geruest provides a clean and intuitive API for defining routes and handling requests. Developers can easily map URL endpoints like 'api/users' or 'api/data' to callback functions. Each callback receives an HTTPRequest object containing all the request data—URL parameters, JSON body content, and cookies—consolidated into a single, easy-to-use parameter map.

Response handling is equally straightforward. Callback functions return an HTTPResponse object, which is a wrapper around standard HTTP responses. This abstraction simplifies common tasks like setting headers, status codes, and response bodies, while still providing the flexibility needed for complex API endpoints.

Design Philosophy:
Geruest was built with practicality in mind, drawing from real-world experiences in web server development. It aims to eliminate boilerplate code and common pain points while maintaining the performance and control that C++ developers expect. The framework handles the repetitive aspects of web development—file serving, request parsing, response formatting—allowing developers to focus on building features and business logic.
Back to the list of projects