cdin-kernel is a portable C11 library for binary-safe text editing. It provides document handles, edits, undo/redo, transactions, immutable snapshots, text-position helpers, literal/byte search, and change notifications through a stable C ABI.
Download the package for your platform from the project's GitHub Releases page, extract it, and run the included installer:
- Linux/macOS:
./install.sh --prefix "$HOME/.local" - Windows: run
./install.ps1in PowerShell. The release package targets 64-bit MinGW-w64 UCRT64.
The public header is cdin/kernel.h. In C or C++, include it with:
#include <cdin/kernel.h>After installation, compile a program with pkg-config:
cc app.c $(pkg-config --cflags --libs cdin-kernel) -o appSee the user guide for a complete example and installation for static/shared linking, custom prefixes, and release packages.
Install a C compiler and Make, then build and test:
sudo apt-get install build-essential pkg-config
make all shared quickstart
make check
sudo make installSupported release architectures are x86-64 and ARM64.
Install the Xcode Command Line Tools, then run:
make all shared quickstart
make check
sudo make installRelease packages are available for Intel (x86-64) and Apple silicon (ARM64).
Install MSYS2 and use its UCRT64 terminal. Install the MinGW-w64 GCC and Make packages, then run:
make all shared quickstart
make check
make PREFIX=/ucrt64 installThe published Windows package targets MinGW-w64 UCRT64; MSVC compatibility is not claimed. A 32-bit Windows build is not currently published.
A multi-architecture SDK image is published to Docker Hub for linux/amd64 and linux/arm64. Replace bitsgenix with the account that publishes the image:
docker pull bitsgenix/cdin-kernel:latest
docker run --rm -it -v "$PWD:/workspace" bitsgenix/cdin-kernel:latestThe image includes the public header, static/shared libraries, GCC, Make, and pkg-config. Use it as a build environment for applications that link against cdin-kernel; it is not an application image. See Container builds.
- Examples index
- C quickstart
- User guide
- C ABI reference
- Language bindings
- Installation and build
- Architecture
- Developer guide
- C standard library — provided by the target platform.
- POSIX Threads (
pthread) — system library used on Unix-like builds; not bundled. - Unicode tables — generated into the source tree from Python's
unicodedataand the third-partyregexmodule. These Python packages are only needed to regenerate the tables, not to build or run the library. Seetools/gen_unicode.pyfor data provenance and limitations. - Build tools — a C11 compiler, Make, and an archiver (
ar) are required to build from source. No third-party runtime library is bundled or linked by the core.
GPL-3.0-or-later. See LICENSE.