Engineering transparency

Open source as part of how we think about engineering

At Thinger.io, open source has never been just a distribution model. It has always been part of how we think about engineering.

From the beginning, the platform was built with the idea that useful technology should not live behind a black box. Over time, Thinger.io has evolved to support more demanding environments, from connected products and industrial systems to production infrastructures where large numbers of devices and services need to exchange data reliably and securely.

But even as the platform has grown in complexity, the underlying principle has remained the same: sharing technical knowledge makes the ecosystem stronger.

That is why we are publishing thinger-http, a modern C++20 library that represents part of the communication layer behind the kind of systems we build and operate at Thinger.io. The goal is not just to release code, but to share design decisions, implementation ideas, and part of the engineering work that helps support scalable communication in distributed platforms and IoT systems.

thinger-http: modern C++ HTTP client and server library. C++20, async, TLS 1.3, WebSockets, SSE.
A modern C++20 HTTP/WebSocket library built on Boost.ASIO with coroutine support, published at github.com/thinger-io/thinger-http.

The communication layer

Why does HTTP infrastructure matter so much in IoT and distributed systems?

When people think about IoT platforms, they often think first about devices, dashboards, or telemetry. But one of the hardest parts of the architecture usually sits deeper in the stack: the communication layer.

In any serious IoT or distributed environment, servers are not just answering occasional requests. They are continuously handling interactions coming from devices, services, web clients, APIs, automation layers, and backend processes. That often means dealing with large numbers of concurrent HTTP requests, long-lived or real-time communication channels, secure connections over TLS/SSL, and traffic patterns that can change quickly under load.

If the communication layer is poorly designed, the consequences tend to appear fast:

  • Unnecessary resource consumption
  • Thread contention
  • Increased latency
  • Difficulty when scaling
  • Fragile behavior under peak traffic

The library

What is thinger-http?

At its core, thinger-http is a communication library for building modern networking services in C++.

It is designed around an async-first model based on C++20 coroutines and Boost.Asio, making it possible to express asynchronous flows more naturally without giving up performance-oriented design.

The library brings together a practical set of features that are especially relevant in real communication workloads: HTTP server and client functionality, WebSockets, Server-Sent Events, and secure communication through TLS/SSL. That combination is useful in systems where the same communication layer may need to serve APIs, web applications, real-time updates, and device-facing services at the same time.

thinger-http at a glance

Language
C++20
Built on
Boost.Asio
Model
Async-first, on C++20 coroutines Synchronous wrappers
HTTP
ServerClient
Real time
WebSocketsServer-Sent Events
Secure communication
TLS/SSL

One communication layer for APIs, web applications, real-time updates and device-facing services.

Its lightweight design also makes it relevant beyond cloud backends. It can fit naturally in gateways, edge services, or more constrained environments where developers still need modern HTTP capabilities without the weight of a larger framework.

Cloud backends

Serving APIs, web applications, real-time updates and device-facing services from the same communication layer.

Gateways and edge services

Modern HTTP capabilities closer to the devices, without carrying a larger framework along.

Constrained environments

A lightweight design for places where developers still need modern HTTP but not its usual weight.

Capabilities

Which capabilities stand out the most?

From a technical perspective, two aspects are especially interesting.

C++20 coroutines at the core of the asynchronous model

Asynchronous networking in C++ has historically been powerful but also difficult to write cleanly, so a coroutine-based approach helps make the library easier to understand and maintain.

A compact but useful feature set

  • HTTP server and client support
  • WebSockets
  • Server-Sent Events
  • TLS/SSL
  • An async-first API with synchronous wrappers

One layer for backend and edge-facing needs

In practice, this gives developers a single communication layer that can cover common backend and edge-facing needs without forcing them into a much larger stack.

The repository also shares an early benchmark snapshot that points to the kind of performance direction the project is pursuing.

As with any benchmark, results depend heavily on workload, hardware, and configuration, but publishing them is still useful because it makes the engineering intent visible.

Security

Does publishing infrastructure code compromise security?

It is a reasonable question. For many years, some infrastructure components were kept private under the assumption that opacity improved security. Modern engineering has increasingly moved in a different direction.

What publishing does not mean

Publishing a component like thinger-http does not mean exposing secrets.

What it means

  • Sharing implementation approaches
  • Sharing design choices
  • Sharing part of the engineering work behind a real platform

Strong systems are not strong because nobody can inspect them. They are strong because they remain solid even when they can be examined.

Open publication can actually improve the situation by:

  • Encouraging technical review
  • Surfacing possible design improvements earlier
  • Creating the conditions for more scrutiny over time

Engineering culture

What does this say about engineering culture at Thinger.io?

For us, releasing thinger-http is not just about publishing code. It is also about showing part of the engineering philosophy behind Thinger.io.

We believe it is possible to build robust systems for real-world IoT and distributed environments while still embracing openness. In fact, we think those ideas reinforce each other. Open source, transparency, and strong engineering are not contradictory. Done properly, they are complementary.

If you are interested in modern C++ networking, communication layers for distributed systems, or the kind of infrastructure that helps IoT platforms scale, thinger-http is now available on GitHub for anyone who wants to explore it, test it, and follow its evolution.

For any questions, join our Discord community: our team and other users will be happy to help.

Discover thinger-http on GitHub

Explore the code, test it and follow its evolution: a modern C++20 HTTP/WebSocket library built on Boost.ASIO with coroutine support.