Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

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

Sign up

A tiny JavaScript runtime

License

NotificationsYou must be signed in to change notification settings

topelinux/txiki.js

 
 

Repository files navigation

txiki.js — The tiny JavaScript runtime

Overview

txikia (basque): small, tiny.

txiki.js is a small and powerful JavaScript runtime. It targets state-of-the-art ECMAScriptand aims to beWinterCG compliant.

It's built on the shoulders of giants: it usesQuickJS-ng as its JavaScript engine andlibuv as the platform layer.

See it in action here:

Building a tiny JavaScript runtime with QuickJS

Getting started

First head over tobuilding and build the runtime.

$ ./build/tjseval"console.log('hello world')"hello world$

If you want to run a script you can usetjs run:

$ ./build/tjs run examples/hello_world.jshello world$

Explore all the options:

$ ./build/tjs --help

For TS support see@txikijs/types.

Features

Support for theES2023 specification (almost complete).

WinterCG

txiki.js aims to beWinterCG compliant, you can track the progresshere.

Web Platform APIs

(1): All of them are async.

(2): No subtle support.

(3): No tables, globals or memory support.

Runtime features

  • TCP and UDP sockets
  • Unix sockets / named pipes
  • Signal handling
  • File operations
  • Child processes
  • DNS (getaddrinfo)
  • WASI
  • Miscellaneous utility functions

See thefull API documentation.

Other extras:

  • Import directly from HTTP(S) URLs
  • Import JSON files
  • Builtin test runner

Standard library

The following modules compose the standard library:

Supported platforms

  • GNU/Linux
  • macOS
  • Windows (beta)
  • Other Unixes (please test!)

Building

CMake is necessary.

NOTE: The txiki.js build depends on a number of git submodules (libffi,libuv andwasm3).If you didn't already clone this repository recursively, make sure you initialize thesesubmodules withgit submodule update --init before proceeding to the build.

GNU/Linux

Install dependencies (libcurl,build-essential,cmake,makeinfo,autoreconf,libtool):

# On Debian / Ubuntusudo apt install libcurl4-openssl-dev build-essential cmake autoconf texinfo libtool

macOS

Install dependencies (cmake,autoconf):

brew install cmake autoconf automake libtool texinfo

Unix systems

# Get the codegit clone --recursive https://github.com/saghul/txiki.js --shallow-submodules&&cd txiki.js# Compile it!make# Run the REPL./build/tjs

Windows (beta)

Windows support it's currently considered beta. Tests do pass, but building it is not as easy as it should be.

Building has only been tested in 64bit Windows.

Prerequisites

First make sure you haveMSYS2 installed. Themingw64 andclang64 environments are currently tested.

Then install the required dependencies:

pacman -S git make pactoyspacboy -S curl-winssl:p toolchain:p cmake:p ninja:p

Build

These commands must be run in a MinGW64 or clang64 shell.

make

This will build the executable just like on Unix. Note that at this point there are a number of dynamically linked libraries, so if you want to use the executable on a different system you'll need to copy those too. Check the list withldd build/tjs.exe.

Running the tests

Make sure these commands are run from Windows Terminal (mintty, what MSYS2 provides is not supported).

maketest

Versioning

At this time txiki.js usescalendar versioning with the form YY.MM.MICRO.



Built with ❤️ by saghul and these awesomecontributors.

About

A tiny JavaScript runtime

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C88.8%
  • JavaScript10.7%
  • WebAssembly0.3%
  • CMake0.1%
  • Makefile0.1%
  • Dockerfile0.0%

[8]ページ先頭

©2009-2025 Movatter.jp