Livny is a modern JavaScript and TypeScript runtime built on top of Rust

Overview

LivnyJS

Ello \o

Livny is a modern JavaScript and TypeScript runtime built on top of Rust, Golang and the GraalVM Polyglot infrastructure that can run all of Deno and Node.jS applications. It is fine-tuned for user satisfaction, performance and security.

How do I get started with it?

First of all, welcome! We offer some cookies and sometimes pigs around here.

Windows

For Windows users, we provide a Windows installer in our releases section. Although Livny is also available through winget

winget install livny

or through choco

choco install livny

MacOS

For MacOS users, we provide a Homebrew tap and you can simply install Livny using it.

brew install livny

Linux distributions

For Linux users, we provide a package in most Linux distributions.

Debian/Ubuntu

sudo apt install livnyjs

Arch

yay -S livnyjs # We're assuming you're using yay as your AUR helper.

OpenSUSE Leap/Tumbleweed

sudo zypper in livnyjs

Fedora

sudo dnf install livnyjs

What makes Livny so fancy mate?

  • High-performance TypeScript out of the box using the INSERT_NAME_HERE TypeScript compiler and type checker made in Golang.

  • Uses the high-performance Graal.JS JavaScript engine.

  • Can integrate perfectly with other programming languages (Take a peek at Mesh Mode).

  • A really fast WASM front-end powered by Graal.WASM to mix and match with even more languages!

  • One runtime to rule them all. Livny can run all Deno and NodeJS libraries and applications, even meshed together. Have that one darn Node library that just isn't Deno compatible but you just like Deno's developer experience? Livny's got your back.

  • Livny packs a punch with industry standard developer utilities to make your experience as smooth as possible. This includes

    • A TypeScript compiler and typechecker.
    • A linter
    • A test suite manager
    • A build system
    • A code formatter
  • Merge everything into a single JavaScript file using Livny-pack and push to prod in a matter of seconds!

Livny's module management system

Installing Livny piglets

To install a Livny piglet, simply do livny install and it will install it!

You can use that piglet from anywhere now by performing an import statement like

import { notify } from "[email protected]";

and installing the notify piglet by livny install notify

And that's.. it! No node_modules, no package.json, no meta data junk.

But what if I run an application which uses a piglet which I do not have installed?

Livny automagically detects dependencies which aren't installed on the system and will prompt you if you want to continue installing them.

For those who want curious -- Livny stores modules in a directory called .piglets


But wait, that's not it!

Livny is smart. It automatically keeps an index of piglet loads and it will clean up unused/barely used piglets after 30 days.

This setting can be changed by

# Changing the time period
livny settings cleanup_period 2m # Two months.

# Disabling this behavior
livny settings cleanup false # true by default.

Installing NodeJS modules

If you're using Mesh mode want to use NPM modules, simply use npm how you would normally but do livny npm instead of npm alone.

You can also add external package managers like

  • Yarn
  • PNPM

By doing livny settings node_pm yarn or livny settings node_pm pnpm


Psst... Tired of writing livny npm or livny yarn again and again? Simply do this!

livny settings node_pm_alias true # False by default.

This will add aliases/links to the Node package manager installed. So you can now run npm or yarn alone just fine! :)

You might also like...
A programming environment that aims to help people learn how to program in JavaScript, while giving them a tour on how old computers and their limitations used to be.
A programming environment that aims to help people learn how to program in JavaScript, while giving them a tour on how old computers and their limitations used to be.

This repository is for the new under renovation rewrite of the LIKO-12 project. The legacy version with the original stars and contributions is still

Guarding 是一个用于 Java、JavaScript、Rust、Golang 等语言的架构守护工具。借助于易于理解的 DSL,来编写守护规则。Guarding is a guardians for code, architecture, layered.

Guarding Guarding is a guardians for code, architecture, layered. Using git hooks and DSL for design guard rules. Usage install cargo install guarding

Rust bindings for Supabase JavaScript library via WebAssembly.

supabase-js-rs Rust bindings for Supabase JavaScript library via WebAssembly. Usage Add supabase-js-rs to Cargo.toml supabase-js-rs = { version = "0.1

Javascript wrapper bindings for diamond types

Diamond JS wrapper library This is a javascript / WASM wrapper around diamond types. This code is currently experimental WIP. Do not trust this for an

Node.js bindings to the ripgrep library, for fast file searching in JavaScript without child processes!

ripgrepjs ripgrepjs: Node.js bindings to the ripgrep library, for direct integration with JS programs without spawning an extra subprocess! This proje

The Hassle-Free JavaScript Tool Manager
The Hassle-Free JavaScript Tool Manager

The Hassle-Free JavaScript Tool Manager Fast: Install and run any JS tool quickly and seamlessly! Volta is built in Rust and ships as a snappy static

Low level tooling for WebAssembly in JavaScript using wasm-tools

js-wasm-tools js-wasm-tools compiles some of the API of wasm-tools to JavaScript and WebAssembly via wasm-bindgen. This offers low level tooling for W

🚀 A fast, modern & efficient interpreted language.

Lace is an efficient, modern and predictable procedural programming language written in rust. Easy to write: Lace's syntax is easy to learn and write,

Objective-C Runtime bindings and wrapper for Rust.

Objective-C Runtime bindings and wrapper for Rust. Documentation: http://ssheldon.github.io/rust-objc/objc/ Crate: https://crates.io/crates/objc Messa

Owner
LivnyJS
Livny is one of the fastest JavaScript/TypeScript runtimes.
LivnyJS
Modern JavaScript runtime for Sony PSP, based on rust-psp and QuickJS.

PSP.js Modern JavaScript runtime for Sony PSP, based on rust-psp and QuickJS. ⚠️ Currently in PoC state, unusable for developing JavaScript apps yet.

Yifeng Wang 15 Nov 28, 2022
Diamond is a minimalistic, powerful, and modern Javascript runtime that uses Deno_Core.

Diamond Diamond is a minimalistic, powerful, and modern Javascript runtime that uses Deno_Core. Installation Diamond is currently in beta(not even Alp

Catermelon 4 Aug 30, 2021
A JavaScript Runtime built with Mozilla's SpiderMonkey Engine and Rust

Spiderfire Spiderfire is a javascript runtime built with Mozilla's SpiderMonkey engine and Rust. Spiderfire aims to disrupt the server-side javascript

Redfire 122 Dec 15, 2022
The JavaScript runtime that aims for productivity and ease

Byte Byte is a easy and productive runtime for Javascript . It makes making complex programs simple and easy-to-scale with its large and fast Rust API

Byte 32 Jun 16, 2021
A Lean Secure Runtime for JavaScript

Tera tera is a lean secure capability-based runtime for JavaScript. It is primarily designed for multi-tenant serverless environment but has uses in o

Gigamono 7 Oct 7, 2022
Spine runtime for Rust (and wasm!) transpiled from the official C Runtime.

rusty_spine Spine runtime for Rust (and wasm!) transpiled from the official C Runtime. Supports Spine 4.1. [dependencies] rusty_spine = "0.4.0" Onlin

jabu 12 Dec 17, 2022
Parametric surfaces drawn using the Rust + WASM toolchain with WebGL, React, and TypeScript.

Parametric Surfaces in the Browser My.Movie.3.mp4 Wanted to experiment with WebGL using the Rust + WASM toolchain, with React and TypeScript to glue e

Benji Nguyen 45 Oct 21, 2022
📝 A template for creating WASM + Typescript + Rust workflow libraries.

Create Rust + TypeScript libraries with ease! PR'S WELCOMED! ✨ Inspiration I wanted to create a WebAssembly/Rust library with additional JS features,

Shaoru Ian Huang 25 Dec 24, 2022
A simple programming language made for scripting inspired on rust and javascript.

FnXY Programming Language Quick move: CONTRIBUTING | LICENSE What? FnXY is a simple programming language made for scripting inspired on rust and javas

null 2 Nov 27, 2021
Facilitating high-level interactions between Wasm modules and JavaScript

wasm-bindgen Facilitating high-level interactions between Wasm modules and JavaScript. Guide | API Docs | Contributing | Chat Built with ?? ?? by The

Rust and WebAssembly 5.9k Jan 8, 2023