Update April 15, 2020: Still go for May 13.
Update March 6, 2020: There's a difficult balance to be had between trying to get it right and shipping a usable product. The repository continues to see rapid development and we have yet to make substantial progress on the major missing feature: dev tool support. Therefore we are bumping the release date yet again. However instead of blindly estimating several weeks out, we've discussed it at length and decided 2 months would be enough time. This coincidentally is around the 2 year anniversary since the first commit. Therefore we are setting the date of May 13, 2020 as the 1.0 release date. Contributors are encouraged to get any major API changes in before April 20 - after that date we will be polishing and bug fixing. Of course the API will continue to evolve and improve after 1.0, but we will be making explicit stability guarantees for some interfaces.
Update Jan 27, 2020: Massive progress is being made, but we still have not yet accomplished the major feature blocker: devtool support. I hate to keep kicking the release date, but we're still looking at some weeks of development. We hope to ship a 1.0 build with stability promises towards end of February.
Update Dec 23, 2019: There is one major feature we lack that needs to be in 1.0 - that's a way to hook Deno up to Chrome DevTools. Implementing it has induced a rewrite of the bindings to V8 - that work is ongoing https://github.com/denoland/rusty_v8. We want to fork lift Deno onto that system before 1.0 happens. Current estimate for 1.0 is end of January.
-
replace libdeno with rusty_v8 replace libdeno with rusty_v8 #3530
-
"deno --debug" support chome devtools #1120 We need to be able to debug using Chrome Devtools. As the deno userland code base grows, it becomes in increasingly painful to work without a debugger. The way this will work is with a websocket server in Rust (port 9229) which forwards messages to V8 (using V8InspectorClient). Inspector support #4484
-
Loading and execution of modules (either JS or TS) needs to be correct. This is the main thing we deliver actually, but there are still many bugs:
source maps are sometimes incorrect Line number printed in the tracing stack is not correct #2390,double downloads happen deno run --reload infinite loop #2442, the cache needs to be refactored Rewrite deno_dir.rs #2057. -
Import maps. It's a very reasonable standard and we can provide support via a command line flag. This allows bare imports. The feature will land very soon feat: Import maps #2360.
-
Dynamic import. 50% complete at the time of writing. Support dynamic import #1789
-
"deno test" test runner Provide a test runner std#193
-
"deno fmt" is slow on the first run. It download a couple of large prettier bundles. deno fmt is slow #2490
-
We need to support d.ts files Support d.ts files #1432
-
"deno bundle" outputs a single AMD bundle of your program. This is useful to share code with websites. Early work has started: Add 'bundle' subcommand. #2467
-
"deno compile" is a very interesting feature to output an executable. It would be nice to have, but I would let this slip past 1.0. "deno compile" into executable #986Not for 1.0 -
"deno install" is a program that creates little shell script aliases to deno programs in your $PATH. This let's people distribute their code easily. Wanted: installer std#471
-
dlopen / plugins / extension modules. We need some way of calling into Rust land. The way Parcel does it is pretty awesome https://parceljs.org/rust.html - but we need low-level primitives to build that on, as we need to carefully funnel everything through the Op abstraction. @afinch7 has a working patch for loading ops in DLLs Feature: Native plugins #2385, we are still iterating on the exact API. I would allow a true FFI module to slip past 1.0 - we'll get there - but it needs to be built on ops. feat: native plugins #3372
-
Support TLS Better TLS support #3009
-
The web-server should be faster.
-
When you visit a deno.land script url (example https://deno.land/std/http/server.ts) in a web browser, it should do better than redirect. It should look at the Accept header and serve pretty HTML. Solved in https://github.com/denoland/registry/commit/b78e6ae331004859aad7b01ed452f6b00265b035
-
If you use "docs.deno.land" you will get auto-generated docs. Have auto generated docs on docs.deno.land #3094First pass at docs dotland#49 -
typescript dependencies are not loaded in parallel
TS compiler loads modules synchronously #2626More asynchronous compiler #2994 -
signal handlers Signal Handlers #2339 Add signal handlers #3757
-
fs events fs events ops #1826 feat: fs events #3452
-
TS and source maps are correctly recompiled Integration tests that ensure dependencies are recompiled or not recompiled depending on mtime #2945
-
Remove tokio_util::block_on Never create more than one Tokio runtime. Remove tokio_util::block_on #2960
-
"deno test" is slow (when running on std) deno test is slow (pref: Dynamic imports) #2789
-
deno lock file Subresource integrity for modules #200
Do any major API renames.
- Change return value in Reader interface #2384
- Unify Rust Error types #2474
- Reduce / clean up ErrorKinds #2635 clean up ErrorKinds
- Remove --no-prompt ... require users to explicitly prompt for permission #2767 use web standard Permission API
- API changes to Ops #2730 register_op
- Add overloaded form of unit test declaration: test(name, fn) std#562 test(name, fn)
- Arguments array - should the program name be included? #2123 Deno.args
- Reconsider the API for declaration files #2934 referencing d.ts files
- deno bundle doesn't work with import.meta #2553
import.metadoesn't work with bundling on browsers. We need to come up with a different scheme for branching if the script is the main. - window.location should be removed #3520 window.location should be cwd?
Other minor bugs that are nevertheless blockers:
- async iteration on fetch bodies Async iteration for fetch response body #2520
- Error "Cannot read property 'w' of null at iterateHttpRequests" on aborted connections std#442
- support onload support window.onload #2386
- support proxy for module downloads
deno does not support http proxy #588Add documentation and test for HTTP proxy #2873 - panic on too many open files Panicking on opening too many files #2243
- we need a way to use typescript compiler from userland
import typescript into deno_std std#428[Feature Request] Typescript compile API #2927 - 'url' variable can't be used Non-standard namespaces other than Deno declared in lib.deno_runtime.d.ts #2888
- Rust crates cannot be published to crates.io #3367
- [bug] Can't import jspm modules #3852 Can't import jspm modules
- Permissionless static relative imports are dangerous #3401 Permissionless static relative imports are dangerous