Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hank for TypeScript

Hank is a purely symbolic, instruction-oriented embeddable language designed to bring secure, dynamic automation to any host application. Built on a strict air-gapped execution model, Hank has zero built-in I/O, guaranteeing that scripts cannot access the filesystem, network, or OS without explicit delegation. This makes it the perfect predictable environment for game scripting, microservice orchestration, and user-facing plugin systems. With a highly readable, keyword-less syntax and universal cross-platform parity, Hank seamlessly bridges the gap between static configuration files and complex general-purpose programming.

This repository provides the official TypeScript implementation of the Hank language. It is a reusable, environment-agnostic library for embedding the Hank interpreter into Node.js, Deno, Bun, or Browser applications.

Installation

npm install https://github.com/Igazine/hank-ts.git

Features

  • Environment Agnostic: The core library has zero dependencies on Node.js APIs.
  • AST Caching: Eliminates parsing overhead for repeated execution.
  • Universal Parity: Bit-perfect execution parity with Go, Rust, and Haxe implementations.
  • Standard Library: Full support for the official Hank Standard Library.

Example Runner

An example Node.js CLI runner is included in examples/runner. To run the conformance tests:

  1. Initialize Submodules: The runner requires the universal conformance suite.
    git submodule update --init --recursive
  2. Build and Run:
    npm install
    npm run build
    cd examples/runner
    npm install
    node src/main.js

Project Links

License

This project is licensed under the MIT License.

About

TypeScript implementation of the Hank Embeddable Automation and Scripting Language

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages