/elsa

❄️ Elsa is a minimal, fast and secure runtime for Javascript and Typescript written in Go

Primary LanguageGoMIT LicenseMIT

Elsa

Travis Status Build Status - Badge Discord invite

Elsa is a minimal, fast and secure runtime for Javascript and Typescript written in Go, leveraging the power from the awesome QuickJS engine.

Features

  • URL based imports
  • No fs, net access unless specified
  • Compliant to web standards
  • Supports TypeScript.
  • Module caching
  • Bundle your script into a single file using elsa bundle script.js
  • Create a standalone executable for your script using elsa pkg script.js

Coming up

  • HTTP server, more Web APIs
  • Easy installation scripts
  • Standard modules
  • Typechecking support with dev subcommand

Benchmarks

Benchmark data for the master branch is available at benchmarks/

Also see Comparison with Deno and Node

Install

Not yet released, build from source instead.

Build from source

You will need Go installed on your machine before building.

Install go-bindata using go get github.com/go-bindata/go-bindata/...

Clone the repo on your $GOPATH and run make build to trigger the build process.

Getting Started

Try running a simple program:

// hello.ts
import { hello } from "https://x.nest.land/arweave-hello@0.0.2/mod.ts";

hello("Elsa");
> elsa run hello.ts
Hello, Elsa

Contributing

Start by creating an issue about your feature or bug! Then, create a PR and we'll land it 😄

Related

License

Elsa.land is licensed under MIT License.