Skip to content

ako-lang/ako

Repository files navigation

logo

NPM Version NPM Download CDN Download Coverage Status Quality Gate Status Security License

AKO Language [WIP]

AKO is a programming language built to be used by no-code or low-code tools

It's a simple scripting language designed to be embedded in application or webApp

[ Documentation | Playground ]


Here is a sample of what Ako looks like

task DelayMessage ["msg"] {
  @print("Hum")
  for i in [3,2,1] {
    @sleep(1)
    @print(String.repeat(".", i))
  }
  @print(msg)
}

name = @ask('What is your name ?')
@DelayMessage("Hello {name} !")

[ Test this code ]

Problem & Goals

Most No-code or Low-code existing solution have big limitations:

  • Bloaty and complicated
  • closed source, so it can be hard to contribute or add custom logic
  • their own UI that can be really frustrating for more advanced user (like blockly)
  • the code is usually stored in a proprietary text format (JSON, YAML or XML) and is not portable or reusable

Ako tries to fill the gap by providing at the same time:

  • A visual programming interface for beginners
  • An interpreter designed to run almost anywhere
  • A programming language for more advanced users but easy to learn
  • Automatic common error detection with code analysis and human friendly error message

Getting Started

From NPM

# Install Ako interpreter
npm install -g ako-lang

# Execute
ako run ./test.ako

Standalone Executable

You can directly use standalone executable of the interpreter : Release page

It's compiled for Windows, Mac and Linux and once downloaded, you can use it to run Ako scripts

./ako.exe run test.ako

CDN

For web usage, you can load the library directly with ESM imports

import * as Ako from 'https://cdn.jsdelivr.net/npm/ako-lang@0.0.12/dist/ako-web.js'

How to write Ako scripts ?

For that, please take a look at our Documentation

Ako Development

After cloning this repository

Getting started locally

npm install # install deps
npm run build
npm link # link the local file globally

ako run ./samples/ # use the interpreter

Other

npm test # run unit tests
npm run package # create the binaries (after build)