https://github.com/qatlang/qat
A modern reimagination of systems programming... by @AldrinMathew
https://github.com/qatlang/qat
compiler low-level programming-language system-programming
Last synced: about 1 month ago
JSON representation
A modern reimagination of systems programming... by @AldrinMathew
- Host: GitHub
- URL: https://github.com/qatlang/qat
- Owner: qatlang
- License: other
- Created: 2021-06-27T14:39:43.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2026-02-17T18:14:13.000Z (3 months ago)
- Last Synced: 2026-02-17T23:30:43.092Z (3 months ago)
- Topics: compiler, low-level, programming-language, system-programming
- Language: C++
- Homepage: https://qatlang.org
- Size: 6.85 MB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README

**qat** is closer to your machine's heart. A superfast, modern systems language for reliable & maintainable code...
### Focus-points of `qat`
- Changes in data are obvious by design
- Advanced compile-time execution & configuration
- Safe pointer types
- Built-in memory management features
- Expressive & flexible syntax
- Simplistic approach to systems programming
- Modular & customisable build process
If you are facing issues with the language, [create an issue](https://github.com/qatlang/qat/issues/new/choose).
### Building the project
Requirements:
- CMake 3.16.3 minimum - Latest recommended
- LLVM 20 (llvm + lld + clang) - Static libraries
- Boost 1.86.0 (Boost.Filesystem) - Static libraries
- icu4c 74.x (libicudata + libicuuc) - Static libraries
#### NOTICE FOR BUILDING
> Building this project requires a specific build of LLVM. The build configuration of LLVM is broken when lld libraries are enabled - Dependencies like `zlib` and `zstd` are not found and linked properly when they are provided as static libraries. I had to modify the CMake configuration to build LLVM without errors.
Make sure that the LLVM, Boost and icu4c builds are in release mode, if you are building those yourself.
To configure the CMake project, run `cmake -DCMAKE_INSTALL_PREFIX="${HOME}/dev/qat" -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR="/path/to/llvm" -DCMAKE_CXX_COMPILER="clang++-19" -DBOOST_DIR="/path/to/boost" -DCMAKE_C_COMPILER="clang-19" -DCMAKE_C_COMPILER_WORKS=1 -DCMAKE_CXX_COMPILER_WORKS=1 -DBUILD_SHARED_LIBS=false -GNinja -S src/ -B build/`
To build, run `cmake --build build --config Release --target install`
The above command installs the language in the directory `${HOME}/dev/qat`, which is the recommended installation path for unix-like systems. Feel free to make changes to the above configuration to suit your needs.
### License
This project is published under the [**Public Source Licence**](https://github.com/qatlang/qat/blob/main/LICENSE) and is solely maintained by [Aldrin Mathew](https://github.com/AldrinMathew).