Giter Site home page Giter Site logo

tryndamere-wang / deno Goto Github PK

View Code? Open in Web Editor NEW

This project forked from denoland/deno

0.0 1.0 0.0 775 KB

A secure TypeScript runtime on V8

License: MIT License

Rust 7.28% Batchfile 0.02% Python 12.06% TypeScript 49.59% JavaScript 5.03% C++ 23.90% C 2.12%

deno's Introduction

deno

Build Status

A secure TypeScript runtime built on V8

  • Supports TypeScript 2.8 out of the box. Uses V8 6.9.297. That is, it's very modern JavaScript.

  • No package.json. No npm. Not explicitly compatible with Node.

  • Imports reference source code URLs only.

    import { test } from "https://unpkg.com/[email protected]/testing.ts"
    import { log } from "./util.ts"
    

    Remote code is fetched and cached on first execution, and never updated until the code is run with the --reload flag. (So, this will still work on an airplane. See ~/.deno/src for details on the cache.)

  • File system and network access can be controlled in order to run sandboxed code. Defaults to read-only file system access and no network access. Access between V8 (unprivileged) and Golang (privileged) is only done via serialized messages defined in this protobuf. This makes it easy to audit. To enable write access explicitly use --allow-write and --allow-net for network access.

  • Single executable:

     > ls -lh deno
     -rwxrwxr-x 1 ryan ryan 55M May 28 23:46 deno
     > ldd deno
     	linux-vdso.so.1 =>  (0x00007ffc6797a000)
     	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f104fa47000)
     	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f104f6c5000)
     	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f104f3bc000)
     	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f104f1a6000)
     	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f104eddc000)
     	/lib64/ld-linux-x86-64.so.2 (0x00007f104fc64000)
    
  • Always dies on uncaught errors.

  • Supports top-level await.

  • Aims to be browser compatible.

Status

Segfaulty. Check back soon.

Roadmap is here.

Also see this presentation: http://tinyclouds.org/jsconf2018.pdf

I am excited about all the interest in this project. However, do understand that this is very much a non-functional prototype. There's a huge amount of heavy lifting to do. Unless you are participating in that, please maintain radio silence on github. This includes submitting trivial PRs (like improving README build instructions).

Build instructions

To ensure reproducable builds, Deno has most of its dependencies in a git submodule. However, you need rustc installed separately.

You probably want ccache installed too.

To build:

# Fetch deps.
git clone --recurse-submodules https://github.com/ry/deno.git
cd deno
./tools/run_hooks.py

# Configure
./third_party/depot_tools/gn gen out/default
./third_party/depot_tools/gn gen out/release --args='cc_wrapper="ccache" is_official_build=true'
./third_party/depot_tools/gn gen out/debug --args='cc_wrapper="ccache" is_debug=true '

# Build
./third_party/depot_tools/ninja -C out/default/ deno

Other useful commands:

./third_party/depot_tools/gn args out/default/ --list
./third_party/depot_tools/gn args out/default/
./third_party/depot_tools/gn desc out/default/ :deno
./third_party/depot_tools/gn help

deno's People

Contributors

chainhelen avatar cyancity avatar f-a-a avatar felixonmars avatar foora avatar frankfang avatar g-plane avatar gillchristian avatar haoxli avatar jbcpollak avatar kevinkassimo avatar kitsonk avatar kizerkizer avatar kompwu avatar kt3k avatar lusbuab avatar matiasinsaurralde avatar mohsen1 avatar monkingxue avatar mreinstein avatar piscisaureus avatar qti3e avatar ry avatar samccone avatar terasum avatar tristanmarion avatar ulivz avatar wbgbg avatar yorkie avatar zearin avatar

Watchers

 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.