Skip to main content

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

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.scm works in editors that support tree-sitter (Neovim, Helix, Zed)
  • Parse-aware search - via ast-grep (sg) for structural code search. Install sg, then run from the SDK root (where sgconfig.yml lives):
    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)

Table of built distributions (wheels) for daslang 0.6.4
File
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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.6.4 This release

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page