daslang
daslang (formerly daScript) is a high-performance statically strongly typed programming language. It can be used standalone or embedded into a C++ host application, and is designed for games and real-time applications.
- Version: 0.6.4
- Release date: TBD
- License: BSD 3-Clause
Links
- Website: https://daslang.io/
- Repository: https://github.com/GaijinEntertainment/daScript
- Documentation: https://daslang.io/doc/
- Blog: https://borisbat.github.io/dascf-blog
- Playground: https://daslang.io/#sandbox
- Authors: Gaijin Entertainment
Key Features
- High-performance - close to C++ speed via ahead-of-time (AOT) compilation and optional JIT (via LLVM)
- Strong static typing with type inference
- Generics, macros, and compile-time meta-programming
- First-class iterators, generators, lambdas, and closures
- Pattern matching, LINQ-style queries via standard library
- Native C++ interop - easy embedding and binding
- Hot reloading support for rapid iteration
- Cross-platform - Windows, macOS, Linux, WASM
What's in the Box
| Directory | Contents |
|---|---|
bin/ |
Compiler and tool binaries (daslang, daslang-live) |
lib/ |
Static and shared libraries for embedding |
include/ |
C++ headers for integration |
daslib/ |
Standard library modules (.das files) |
modules/ |
Optional plugin modules |
examples/ |
Example scripts |
tutorials/ |
Language, integration, and module tutorials |
dastest/ |
Test framework (usable for testing your own code) |
utils/ |
Tooling: MCP server for AI assistants (mcp/), LSP server for Claude Code (lsp/), package manager (daspkg/), lint (lint/), code formatter (das-fmt/), duplicate detector (detect-dupe/), coverage (dascov/), AOT/JIT helpers |
skills/ |
AI-assistant task instructions (paired with the root CLAUDE.md); skills/daslang/ is the standalone language reference, auto-loaded for agent sessions at the SDK root and copyable into any project's .claude/skills/ |
tree-sitter-daslang/ |
Tree-sitter grammar, shared library, and highlighting queries |
Quick Start
New to daslang? GETTING_STARTED.md (next to this file) walks through
running a first program and wiring up editor + AI-assistant tooling.
Run a script:
bin/daslang examples/hello_world.das
AOT-compile a script:
bin/daslang -aot examples/hello_world.das hello_world_aot.cpp
Embedding via CMake
find_package(DAS REQUIRED)
target_link_libraries(your_app PRIVATE DAS::libDaScript)
See tutorials/integration/ for complete C and C++ embedding examples.
Embedding without CMake
DAS::libDaScript pulls in the rest of the link set automatically; a hand-wired
project (a plain Visual Studio project, a custom build system) must list it all.
The daslang runtime is split out of the compiler library, so linking
libDaScript alone fails with unresolved symbols such as
das::ptr_ref_count::ref_count_track - the runtime half defines them.
Link, from lib/:
libDaScript.lib libDaScript_runtime.lib libUriParser.lib
plus, on Windows, the system libraries:
dbghelp.lib ws2_32.lib mswsock.lib advapi32.lib rpcrt4.lib
Add include/ to the include path and compile as C++17 or newer. On
non-Windows platforms the same three daslang libraries apply, with the platform's
usual thread and dl libraries in place of the Windows list.
Tree-sitter Grammar
A full tree-sitter grammar for daslang is included in tree-sitter-daslang/. Use it for:
- Syntax highlighting -
tree-sitter-daslang/queries/highlights.scmworks in editors that support tree-sitter (Neovim, Helix, Zed) - Parse-aware search - via ast-grep (
sg) for structural code search. Installsg, then run from the SDK root (wheresgconfig.ymllives):sg run -p "symbol_name" -l daslang
- Editor extensions -
tree-sitter-daslang/zed-daslang/includes a Zed extension
MCP Server (AI Tool Integration)
utils/mcp/ contains an MCP server exposing 40+ compiler-backed tools to AI coding assistants: compilation diagnostics, type inspection, go-to-definition, find-references, AST dump, AOT generation, expression evaluation, parse-aware grep for both .das and C++, duplicate detection, live-reload control, and more. Uses stdio transport - no extra build dependencies.
Configure in .mcp.json:
{
"mcpServers": {
"daslang": {
"command": "bin/daslang",
"args": ["utils/mcp/main.das"]
}
}
}
See utils/mcp/README.md for the full tool list and permissions setup.
LSP Server (Claude Code)
utils/lsp/ contains a language server for .das: push diagnostics - the
compiler and lint report after every edit with no explicit tool call - plus
definition / references / hover / document & workspace symbols / call
hierarchy / go-to-implementation. Requires python3 on PATH.
Claude Code sessions started at the SDK root load it automatically (the
shipped .claude/skills/daslang-lsp/ plugin manifest). From anywhere else,
register it explicitly:
claude --plugin-dir <sdk-root>/utils/lsp/plugin
See utils/lsp/README.md for configuration (initializationOptions:
compiler override, project_root for native modules, .das_project).
Building from Source
git clone --recurse-submodules https://github.com/GaijinEntertainment/daScript.git daslang
cd daslang
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build --target daslang --config Release
macOS: Gatekeeper Quarantine
If macOS blocks the downloaded SDK with errors like "cannot be opened because the developer cannot be verified" or "is damaged and can't be opened", remove the quarantine attribute:
xattr -cr /path/to/daslang-sdk
Binaries produced by cmake --install are ad-hoc code signed automatically, which prevents this issue in most cases.
License
BSD 3-Clause License - Copyright (c) 2018-2026, Gaijin Games Kft.
See LICENSE for the full text.
Metadata
Release files for daslang 0.6.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| daslang-0.6.4-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| daslang-0.6.4-py3-none-manylinux_2_38_x86_64.whl | Python 3 | none | Linux glibc 2.38+ x86-64 | Details |
| daslang-0.6.4-py3-none-manylinux_2_38_aarch64.whl | Python 3 | none | Linux glibc 2.38+ ARM64 | Details |
| daslang-0.6.4-py3-none-macosx_26_0_arm64.whl | Python 3 | none | macOS 26.0+ ARM64 | Details |
Total release size: 341.8 MB
Release files / daslang-0.6.4-py3-none-win_amd64.whl
| Download URL | daslang-0.6.4-py3-none-win_amd64.whl |
|---|---|
| Size | 90.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ed5ced2aeec083583b428f61e306875eb4c57fdbeb522d1346a693eadc7ec32a
|
|
BLAKE2b-256 checksum How to use checksums |
408c4c00669ec9e4efe4888242d4e3ff84e71d46967c4c435af20274a01efba1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / daslang-0.6.4-py3-none-manylinux_2_38_x86_64.whl
| Download URL | daslang-0.6.4-py3-none-manylinux_2_38_x86_64.whl |
|---|---|
| Size | 90.9 MB |
| Tags | Linux glibc 2.38+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
ba828b0acecc9cf99d2081469d5d6fb80513c4b58b4dcc3c52eae2adb7971e97
|
|
BLAKE2b-256 checksum How to use checksums |
2e039cdfe7f55b8e0caa5699a5da0c8dcb14bbd64569b8b8d52177145c942893
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / daslang-0.6.4-py3-none-manylinux_2_38_aarch64.whl
| Download URL | daslang-0.6.4-py3-none-manylinux_2_38_aarch64.whl |
|---|---|
| Size | 87.2 MB |
| Tags | Linux glibc 2.38+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
9913099cae94c28fd1f448e7a7e4ef8b4926bf9d99fd06c6801c21d66d259789
|
|
BLAKE2b-256 checksum How to use checksums |
da0dfa0b7415f0de627365d494f2d1df2cec6a59f37b29b63ff5f23e511a1375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / daslang-0.6.4-py3-none-macosx_26_0_arm64.whl
| Download URL | daslang-0.6.4-py3-none-macosx_26_0_arm64.whl |
|---|---|
| Size | 73.6 MB |
| Tags | Python 3 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6f82bf4ec35951d461c8c06c31fef6970671bb7bbb7631de7abaed2b072d05f1
|
|
BLAKE2b-256 checksum How to use checksums |
9d19c7b94b1a35895b66eac3bd8b610e33c3c2ffcbecc25b9b11ad5379130da3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log