Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Outline

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.3
  • Release date: TBD
  • License: BSD 3-Clause

Links

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, das-fmt)
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)
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.

Tree-sitter Grammar

A full tree-sitter grammar for daslang is included in tree-sitter-daslang/. Use it for:

  • Syntax highlightingtree-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 extensionstree-sitter-daslang/editors/zed/ 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) 2019-2026, Gaijin Entertainment. See LICENSE for the full text.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.