Coder Social home page Coder Social logo

nikolasmelui / just Goto Github PK

View Code? Open in Web Editor NEW

This project forked from just-js/just

0.0 0.0 0.0 544 KB

a very small v8 javascript runtime for linux only

License: MIT License

Makefile 4.28% C++ 17.26% JavaScript 64.14% Dockerfile 0.91% Shell 8.57% Assembly 1.87% C 2.98%

just's Introduction

Just Gitpod ready-to-code

A very small v8 javascript runtime for linux only

Binder

Build and Run

Currently working on modern linux (debian/ubuntu and alpine tested) on x86_64

# download and run the build script
sh -c "$(curl -sSL https://raw.githubusercontent.com/just-js/just/current/install.sh)"
# install just binary to /usr/local/bin
make -C just install
# export the just home directory
export JUST_HOME=$(pwd)/just
export JUST_TARGET=$JUST_HOME
# if you don't want to install, add JUST_HOME to SPATH
export PATH=$PATH:$JUST_HOME
# run a shell
just

Create a new Application

# initialise a new application in the hello directory
just init hello
cd hello
# build hello app
just build hello.js --clean --static
./hello

Command Line Options

Run a Just shell/repl

just

Pipe a script to stdin

cat hello.js | just --

Eval some Javascript passed as an argument

just eval "just.print(just.memoryUsage().rss)"

Run a script

just hello.js

Initialise a new project and build it

just init hello
cd hello
just build

Clean a built project

just clean

Documentation

Coming soon...

Philosophy/Goals

  • small, secure, robust and performant js runtime for linux
  • small codebase. easy to understand and hack
  • very simple layer on top of system calls, v8 and c/c++ standard libraries
  • minimal use of classes/function templates and OO - "c" in javascript
  • favour return codes over exceptions
  • platform for building system software on linux in javascript
  • as close to native performance as possible
  • secure by default
  • avoid abstraction as much as possible. abstractions can be built in userland
  • commonjs modules, no support for ES modules
  • non-async by default - can do blocking calls and not use the event loop
  • event loop in JS-land. full control over epoll api
  • small standard library - leave as much to userland as possible. focus on primitives needed to build higher level abstractions
  • useful as a teaching/learning platform for linux system programming and learning more about javascript and v8 internals
  • small number of source files
  • minimal dependencies - g++ and make only
  • keep LOC as small as possible < 5k
  • allocate as little as possible on v8 heap

just's People

Contributors

billywhizz avatar ghuntley avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.