Deno Newsletter #32
Welcome to Deno Newsletter issue #32!
Every Monday we serve you with a bunch of useful information and links for every Deno enthusiast.
Don't forget to join discussion on Deno's official Gitter channel!
If you encounter anything Deno related that you want to share with community, mention us on Twitter @DenoNews, or just respond to this mail.
1 million lines of dependencies eliminated! Build dependency on Node removed. Exposes public V8 snapshotting API in Rust. https://t.co/aAArau7pJW— Deno (@deno_land) September 2, 2019
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
- Better error stack traces for async ops #2820
- 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
Registry[caption align="alignnone" width="980"]Directory listing in deno.land[/caption]
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.— kitsonk.meh (@kitsonk) August 27, 2019
Thanks for reading and stay tuned for more news next week!