Downloads
Download the CETAN Web Application Server, Safe utilities, and CETAN REST API SDK. All packages target Linux servers with GLIBC++ ≥ 3.4 and a C++23‑capable toolchain.
CETAN Web Application Server
The CETAN Web Application Server hosts static content and C++ web applications, including REST services built with the CETAN REST API.
CETAN Server (Linux x86_64)
Production build of the CETAN Web Application Server for Linux. Includes configuration templates and logging configuration.
Download server SHA256SHA256: <83f478296d70247771741446f5d3dd3716fe59602d843039f0cc20eaf2b65f0e>
Place the CETAN server binary and configuration files under a dedicated directory on your Linux host. Adjust permissions and service configuration according to your environment.
Safe Library
The Safe Library provides a C++ API for working with encrypted .safe files.
Developers can embed Safe directly into their applications to securely store and retrieve
secrets such as passwords, API keys, and private keys.
Safe Library package
Contains the C++ headers, static library (libctn-safe.a), shared library
(libctn-safe.so). Use it to create Safe files, add entries, retrieve values, and manage
encrypted secrets programmatically.
SHA256: <3fc73fb25485c11de2f9e1234c109c0c8c0ad4fb222c4d0739f3e653068cc785>
After downloading, extract cetan-safe-2.0.0.tar.gz to a preferred location. Include the
include/ directory in your compiler's header search path and link against
libctn-safe.a or libctn-safe.so depending on your build configuration.
Safe tool
Safe tool provide a CLI for managing encrypted .safe files used to store
secrets such as passwords, API keys, and private keys.
Safe tool package
Contains the safe CLI binary and supporting files. Use it to create Safe
files, add entries, retrieve values, generate salts and passwords, and compute HMACs.
SHA256: <be67a129f8c56acf851a328da711ebfb35583c9ca7f242c2f2b046e51461b525>
After downloading, extract cetan-safe-tool-2.0.0.tar.gz to a preferred location and ensure
the safe binary is executable. You can then use it to manage secrets referenced by CETAN.
SLog Library
The SLog Library provides a lightweight, high performance C++ logging framework used throughout CETAN. It offers structured logging, log levels, timestamped entries, and pluggable output backends suitable for embedded systems, servers, and modular applications.
SLog Library package
Contains the C++ headers, static library (libctn-slog.a), shared library
(libctn-slog.so). Use it to integrate structured logging into your applications,
emit diagnostic messages, and build consistent logging pipelines across CETAN modules.
SHA256: <0040cc65fe76b54975ac0e8613dd335d6419b5c8a9d96411aecc1d0d2a08ad15>
After downloading, extract cetan-slog-2.5.0.tar.gz to a preferred location. Include
the include/ directory in your compiler's header search path and link against
libctn-slog.a when building applications that use the SLog logging framework.
CETAN REST API SDK
The CETAN REST API SDK provides headers and libraries for building C++ REST applications that run on the CETAN Web Application Server.
REST API SDK
Includes the CETAN REST headers (include/), libraries (lib/),
and example projects such as cetan-rest-101.
SHA256: <42f7ec3d9a6f1fe73051d6b4ab4f498851d9fba6247be26cb34f9c9761b940ff>
After extracting the SDK, copy the include and lib directories
into your project and configure your build system to link against libctn-rest.so.
JSON Library
The CETAN JSON Library provides a lightweight, high‑performance C++ JSON parser and generator. It is used throughout CETAN for building REST responses, parsing structured data, and constructing JSON objects in a memory‑efficient manner suitable for servers, embedded systems, and modular applications.
JSON Library package
Contains the C++ headers, static library (libctn-json.a),
and shared library (libctn-json.so). Use it to integrate
fast JSON serialization and parsing into your CETAN applications or any
standalone C++ project requiring efficient JSON handling.
SHA256: <0e85a65557ccb0892d7753f9e49371112811ec2ca11b2824276a094ee288208d>
After downloading, extract cetan-json-2.0.0.tar.gz to a
preferred location. Include the include/ directory in your
compiler's header search path and link against libctn-json.a
or libctn-json.so when building applications that use the CETAN
JSON framework.
CETAN Docker Image
The CETAN Docker Image provides a fully containerized version of the CETAN Web Application Server. It includes the CETAN runtime, required libraries, and a hardened entrypoint designed for secure, non-root execution. Use this package to deploy CETAN quickly on Linux servers, cloud environments, or container orchestration platforms.
CETAN Docker Image package
Contains the prebuilt Docker image (cetan:latest) packaged as a
compressed archive. Load it using docker load and run CETAN with
mounted configuration, security files, logs, and application directories.
SHA256: <14f02a027ab7cb615fd3b596a3165fd26b69d63e9291a95ae7742e7ce6b1d99c>
After downloading, extract cetan-docker-latest-2.5.0.tar.gz and load the
image using docker load -i cetan_latest. Prepare the CETAN home
directory under /opt/apps/cetan and mount the required
config, security, logs,
ext, and html directories when running the container.
Sample applications: cetan-rest-101.ctn
Example applications demonstrate how to structure and deploy C++ web services on CETAN.
cetan-rest-101
A minimal REST application exposing /rest-101/greeting/hello-world using
the CETAN REST API.
Deploy example .ctn files by placing them in the CETAN server’s
lib directory and adding an <app> entry in
cetan_config.xml.
Sample applications: cetan-rest-201.ctn
Advanced example applications demonstrating real-world REST patterns on the CETAN Web Application Server.
cetan-rest-201
A collection of advanced REST examples including:
Request handling, query parameters, file upload processing,
authentication workflows, and deploying multiple REST applications on a single CETAN server.
Deploy example .ctn files by placing them in the CETAN server’s
lib directory and adding an <app> entry in
cetan_config.xml. Multiple applications may be deployed simultaneously by
assigning each a unique context path.