There was no release last week, but major refactors had taken place that bring us closed to 1.0!
Long standing problem was use of Flatbuffers for serialization of data between Rust and V8 - ie. serialization of “ops”. Although Flatbuffers are fast, they’re also very complicated to use and significantly increase complexity of build process. However Flatbuffers are no more! After reorganization of dispatch mechanism and porting ops code Deno now uses JSON for all serialization except super-hot “read”/“write” ops which use custom minimal binary format. Whole operation was done without significant performance impact! Read more about it in #2796, #2799 and #2801
New snapshot infrastructure - landed just yesterday #2825 this PR resolves quite a few issues that were haunting us for some time now; removing dependency on Node in build, relying on Rollup to generate main Deno bundle, slow incremental builds. Thanks to new “deno_typescript” crate (expect this name to change) users will be able to generate custom V8 snapshots easily. All of those changes are preliminary work towards using “cargo” as main build frontend (#2608).
New features in REPL - alike Node.js REPL, Deno REPL now stores result of last evaluation in _ variable and last thrown error in _error. See #2843 and #2845 for details.
window.queueMicrotask - push a function directly to microtask queue without need to create a Promise - #2844
Use reqwest as internal HTTP client - this change adds support for using system proxies (via HTTP_PROXY and HTTPS_PROXY env variables) for downloading modules and making requests using “fetch” interface; as well as handling of gzipped responses - for more details see #2822
Directory listing in deno.land
Deno Registry now supports directory listing and breadcrumbs thanks to Jed Fox (@j-f1)
Proud to announce I have been invited to speak about @deno_land at the first ever @jsconfjp on Nov 30th/Dec 1st in Tokyo: https://t.co/BR6aM9scrJ Another excuse to bring some Deno the Dino stickers with me.