<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dat Vo</title>
    <description>The latest articles on DEV Community by Dat Vo (@dtv67288).</description>
    <link>https://dev.to/dtv67288</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4034412%2F6abdbe60-cbb8-4304-bb45-8920114645db.png</url>
      <title>DEV Community: Dat Vo</title>
      <link>https://dev.to/dtv67288</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dtv67288"/>
    <language>en</language>
    <item>
      <title>Introduction: CETAN a C++ Web Application Server</title>
      <dc:creator>Dat Vo</dc:creator>
      <pubDate>Sat, 18 Jul 2026 19:04:46 +0000</pubDate>
      <link>https://dev.to/dtv67288/introduction-cetan-a-c-web-application-server-3f6n</link>
      <guid>https://dev.to/dtv67288/introduction-cetan-a-c-web-application-server-3f6n</guid>
      <description>&lt;p&gt;🚀 Building low-latency web apps in C++23: Meet CETAN, a Linux web application server with native TLS &amp;amp; integrated AI threat detection&lt;br&gt;
We are finally ready to share CETAN—a dedicated C++ web application server designed specifically for Linux environments where latency, granular control, and tight security are non-negotiable.&lt;/p&gt;

&lt;p&gt;If you are building latency-sensitive RESTful services or hosting dynamic C++ services alongside static content, we wanted to create something that feels cohesive rather than stitching together multiple external libraries.&lt;/p&gt;

&lt;p&gt;⚡ Benchmark Performance (Old Hardware Test)&lt;/p&gt;

&lt;p&gt;Instead of running benchmarks on massive, expensive cloud instances, we wanted to see how CETAN handles fully dynamic routing under pressure on standard, older desktop hardware.&lt;/p&gt;

&lt;p&gt;Test Machine: Intel Core i5 (4th Generation), 4 cores, 16GB RAM (performance should scale significantly higher on modern CPUs).&lt;/p&gt;

&lt;p&gt;Endpoint Tested: A /ping URL hosted directly from the application root to force a full dynamic routing lookup.&lt;/p&gt;

&lt;p&gt;Test Command: wrk -t8 -c400 -d30s &lt;a href="https://cetan.io" rel="noopener noreferrer"&gt;https://cetan.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note on Setup: The built-in Web Guard AI component was disabled during this run to establish a clean framework baseline.&lt;/p&gt;

&lt;p&gt;The Results (30-second sustained load):&lt;/p&gt;

&lt;p&gt;Concurrency: 8 threads handling 400 active connections&lt;/p&gt;

&lt;p&gt;Throughput: 31,071.93 Requests/sec&lt;/p&gt;

&lt;p&gt;Data Transfer: 3.76 MB/sec&lt;/p&gt;

&lt;p&gt;Latency Profile:&lt;/p&gt;

&lt;p&gt;Average: 12.88 ms&lt;/p&gt;

&lt;p&gt;Standard Deviation: 3.37 ms&lt;/p&gt;

&lt;p&gt;Max Latency: 132.66 ms&lt;/p&gt;

&lt;p&gt;🛠️ The Tech Stack &amp;amp; Requirements&lt;/p&gt;

&lt;p&gt;Language/Standard: Built using modern C++23.&lt;/p&gt;

&lt;p&gt;Environment: Linux-first runtime (requires GLIBC++ ≥ GLIBCXX_3.4.33 and a modern compiler like g++ 14).&lt;/p&gt;

&lt;p&gt;Configuration: Simple centralized configuration using standard XML (cetan_config.xml).&lt;/p&gt;

&lt;p&gt;🧠 Built-in AI Security: Web Guard&lt;/p&gt;

&lt;p&gt;One of the unique things we integrated directly into the core server layer is CETAN AI – Web Guard. Instead of relying entirely on heavy external WAFs, Web Guard uses a lightweight, low-latency transformer model to inspect every single incoming HTTP request in real time. It instantly classifies traffic as normal, suspicious, or scanner—catching tools like sqlmap, wpscan, or custom fuzzers before they even hit your application endpoints.&lt;/p&gt;

&lt;p&gt;💻 Hello World Example&lt;/p&gt;

&lt;p&gt;Writing a microservice using the CETAN REST API looks like this:&lt;/p&gt;

&lt;p&gt;// Greeting service – /rest-101/greeting/hello-world&lt;/p&gt;

&lt;p&gt;class Greeting : public WebService {&lt;/p&gt;

&lt;p&gt;public:&lt;/p&gt;

&lt;p&gt;Greeting() : WebService("/greeting") {}&lt;/p&gt;

&lt;p&gt;Response hello_world() {&lt;/p&gt;

&lt;p&gt;Response resp(200);&lt;/p&gt;

&lt;p&gt;resp.body("Hello, World!");&lt;/p&gt;

&lt;p&gt;return resp;&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;private:&lt;/p&gt;

&lt;p&gt;std::vector register_resources() const override {&lt;/p&gt;

&lt;p&gt;std::vector resources;&lt;/p&gt;

&lt;p&gt;resources.emplace_back(new Resource("GET", "/hello-world", &amp;amp;Greeting::hello_world));&lt;/p&gt;

&lt;p&gt;return resources;&lt;/p&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;};&lt;/p&gt;

&lt;p&gt;🔒 Core Platform Features&lt;/p&gt;

&lt;p&gt;Structured Logging (SLog): Rather than bringing in external logging systems, we package the native SLog subsystem into the runtime framework. It handles thread-safe structured logging out of the box so you can maintain granular execution traces without sacrificing throughput.&lt;/p&gt;

&lt;p&gt;Integrated JSON Handling: Building modern endpoints shouldn't require configuring third-party serialization libraries. The runtime ships with a fully optimized, compiled JSON / XML RESTful parsing stack integrated directly into the SDK.&lt;/p&gt;

&lt;p&gt;Safe Secrets Management: We built a secondary utility called Safe to store your TLS keys, passwords, and tokens in encrypted .safe files. You just reference the encrypted entry keys in your server config so nothing is ever hardcoded.&lt;/p&gt;

&lt;p&gt;Native Security: Native support for TLS/HTTPS, IP filtering (CIDR white/blacklisting), and Basic/Bearer/LDAP authentication out of the box.&lt;/p&gt;

&lt;p&gt;Container Ready: It can run bare-metal or inside micro-containers via our prebuilt Docker images.&lt;/p&gt;

&lt;p&gt;📂 How to Try It&lt;/p&gt;

&lt;p&gt;If you want to poke around the documentation, test out the interactive Web Guard traffic classification tester, or grab the REST API SDK to build a sample endpoint, check us out at cetan.io.&lt;/p&gt;

&lt;p&gt;We are looking for brutal, honest engineering feedback. How do you handle your C++ web server routing today? Are there specific edge-case integrations or benchmarks you would want to see next?&lt;/p&gt;

&lt;p&gt;Let us know your thoughts!&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>performance</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
