Git Product home page Git Product logo

deno's Introduction

deno

Build Status

A secure TypeScript runtime built on V8

  • Supports TypeScript 2.8 out of the box. Uses V8 6.8.275.3. 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

Github Noise

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).

Compile instructions

Get Depot Tools and make sure it's in your path.

You need yarn installed.

You need rust installed.

You might want ccache installed.

Fetch the third party dependencies.

./tools/build_third_party.py

Generate ninja files.

gn gen out/Default
gn gen out/Release --args='cc_wrapper="ccache" is_official_build=true'
gn gen out/Debug --args='cc_wrapper="ccache" is_debug=true '

Then build with ninja (will take a while to complete):

ninja -C out/Debug/ deno

Other useful commands:

gn args out/Debug/ --list
gn args out/Debug/
gn desc out/Debug/ :deno
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 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 ztplz avatar

Watchers

 avatar  avatar  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.