На прошлой неделе прошел очередной STD WG #5, залили видео.

На повестке было рассмотрено 4 вопроса:

fmt - добавят описания, экспорт некоторых типов, улучшение colors.

hash - возможно deprecated после реализации в Deno window.crypto

mime - Как я понял хотят удалить всю директорию, без обозначения deprecated, и без переноса куда либо в x, так как не понятно кто будет его мэнтейинить дальше. Причины: Multipart не очень похож на web.api и тд. Во всяком случае окончательное решение обьявят в release notes.

node
- child_process - приоритетно, но хз, когда будет, чтобы завершить работу либо нужно переписать внутренности deno api, чтобы работал правильно close. Или же дождаться все таки Explicit Resource Management (который пока на stage 2) и реализовать DenoApi совместимым с ним.

- cluster - поставили в приоритет, так как популярно в ноде, например в pm2, и vscode extensions.

- console - просто будет re-export window.console

- dgram - low priority
- dns - не приоритетно, но легко сделать
- events - доработка
- http, http2, https - ждем реализации нативных биндингов, и переделки api std/http
- perf_hooks - WIP
- process - не все методы сделаны и не приоритетно
- readline - low priority
- repl - low priority, + слишком сложно для реализации
- sys - depracated в nodejs, поэтому не нужен
- tls - high priority так как используются в различных драйверах бд
- node v8 биндинги не будут реализованы, так как нет необходимости

Далее было про experimental features в ноде - low priority.


Ну и в целом было интересно наблюдать как Ryan и Bartek вспоминали что они творили в node.
Вышел Deno 1.8

Фичи:
- importmap - stable + remote url
- WebGPU API
- ICU
- DENO_AUTH_TOKENS для импорта из приватных репозиториев
- Deno.permissions - stable
- Deno. link .symlink - stable
- Deno.metrics больше опций
- deno fmt - json support
- deno lsp - stable
- deno doc - support type references из .d.ts
- TypeScript 4.2

Deno [email protected] - в основном изменения каснулись std/node и io/streams

https://deno.land/posts/v1.8
2 марта произошел инцидент, с хостом Deno - Cloudflare.
В результате чего были не доступны пакеты, но вскоре был поднят резервный.

Собственно, сейчас на странице https://status.deno.land/ вы можете наблюдать доступность сервисов Deno.
⚡️⚡️
Анонсировали Deno Company.

Теперь это не просто проект на GitHub, а полноценная компания, со своим штатом сотрудников.
Весь исходный код будет под MIT, бизнес будут строить на приватных решениях на основе Deno.
В статье обьявили что Node.JS это уже больше легаси, и что нужно делать больше web специфичных вещей.

Инвестировали 4.9 млн $
Следующие ребята:
Dan Scholnick from Four Rivers Ventures, Guillermo from Rauch Capital, Lee Jacobs from Long Journey Ventures, the Mozilla Corporation, Shasta Ventures, and our long-time collaborator Ben Noordhuis.

https://deno.com/blog/the-deno-company
Deno HTTP bindings будут напрямую завязаны на hyper. В результате должен быть существенный прирост в производительности (req/s)

Будет доступно уже в версии 1.9. Согласно релизному плану 13 апреля.

https://github.com/denoland/deno/pull/9935

Это не сломает текущий std/http, существующие фреймворки должны будут переписать реализацию под новый подход при желании.


В свою очередь считаю что проблема производительности сейчас только в самом std/http и недостаточном ревью этого кода. Я уже обнаруживал и исправлял месяц назад в std/http падение производительности в 2 раза.

Сам по себе Deno Listen очень быстр, и может обрабатывать гораздо больше соединений чем позволяет сделать обертка std/http. Тут накидал немного кода быстрого http в Deno.
Вот и вышел релиз 1.9

- Native http/2, на 48% быстрее чем std/http
На самом деле скорость std/http тоже возрос, за счет serde_v8 (вызовы rust кода на 98% стали быстрее)
http2 доступен только через Deno.listenTls

- Blob из коробки
- Permission prompt
- Улучшения в language server
- Доп флаги --allow-env --allow-run для доступа по списку (например --allow-env=DEBUG,LOG)

Deprecated и уйдет в std/io:

Deno.Buffer
Deno.readAll
Deno.readAllSync
Deno.writeAll
Deno.writeAllSync
Deno.iter
Deno.iterSync

https://deno.com/blog/v1.9
Deno 1.10 Release Notes

- Improvements to the built-in test runner
- Structured clone supported in Web Workers
- Web Storage API added
- Support for remote import maps

https://deno.com/blog/v1.10
Forwarded from Denoland (Evgenii Karagodin)
Релиз Deno версии 1.11

- доступны официальные docker образы https://hub.docker.com/r/denoland/deno
- deno lint теперь стабильный
- много улучшений по поддержке web api: abortable fetch, улучшения в web crypto, добавили TextEncoderStream и TextDecoderStream и т.д.
- текущий статус совместимости с веб платформой можно смотреть здесь https://wpt.deno.land/. В будущем планируют добавить на MDN информацию по Deno о поддержке различных API.
- в deno compile появилась поддержка динамических импортов с data URI
- обновили TypeScript до версии 4.3
- много улучшений в deno lsp
Q3 2021 roadmap

- удаление поддержки нативных плагинов
- добавление ffi вместо нативных плагинов
- новый удобный API для subprocess
- stabilize native HTTP server
- WebSocket native HTTP serve
- поддержка Import Assertions

https://github.com/denoland/deno/issues/11168
Вышел Deno 1.12

- Улучшена поддержка web crypto API
- В native server завезли WebSocket
- REPL теперь поддерживает typescript
- MessageChannel и MessagePort web API для шаринга между воркерами / main thread
- Улучшен debug с chrome devtools
- в tsconfig добавили опцию types
- …
https://deno.com/blog/v1.12
⚡️ Вышел Deno 1.13

Из крутых фич которых я совсем не ожидал в ближайшее время:
- FFI сразу на следующий релиз после удаления Deno Plugins. Теперь можно выполнять функции либ, Пример
- Deno Http и Deno.core websocket теперь в stable

Теперь удобно читать коммиты по группам extensions (web api, tls, crypto), и в этом релизе это:
- WebSocketStream API
- Web API - structuredClone, только пару дней назад Сережа писал об этом в вебне , а оно уже вот в этом релизе =)
- crypto - add verify(), implement importKey and exportKey for HMAC

В REPL завезли еще немного фич: поддержка exports + eval

Подробнее про Deno.core: tag/1.13

⚡️ Deno/std 0.104.0

- Добавили модуль collections, для удобной работы с коллекциями. Всего 17 API методов (distinct, zip, deepMerge, groupBy и тд)
- wrapper для WebCrypto
- Больше к совместимости к пакетам из node

Подробнее про Deno.std: tag/0.104.0


Up: https://deno.com/blog/v1.13
⚡️Deno появился на страницах MDN

Недавно Deno начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data

https://deno.com/blog/deno-on-mdn
⚡️Deno 1.14

- More Web Crypto
- Config for lint and fmt

наконецто добавили эту фичу, стандартрый fmt не совсем был ок
- URLPattern
теперь можно заменить в большинстве фреймворков router на данный web api
- Stabilization of Deno.upgradeWebSocket
- Zero-copy transfers between workers
- File locking APIs

unstable, например фича может понадобиться для различных БД
- Mutual TLS support in fetch
Теперь можно преднастроить клиент для fetch, например докинуть сертификат
- V8 up to 9.4,
ну и конечно доступны class static blocks
- TypeScript 4.4
- std/http теперь идет от Deno native http
- std/collections - добавлено много нового API

https://deno.com/blog/v1.14
⚡️Deno 1.15

- New crypto APIs
- FFI improvements
- deno uninstall subcommand
- deno lint --watch
- In memory CA certificates
- Nested testing API
- API stabilizations
- V8 9.5 update
- Improving Node Compatibility

https://deno.com/blog/v1.15

Из интересного последний пункт, запуск node спецефичных скриптов с флагом -compat. (Будет подгружать все пакеты из std/node).
Из проведенных экспериментов, работает ок, кроме require.resolve.

jspm как всегда хорош для задач импорта пакетов из npm.
esm.sh не смог в зависимости, сервер Skypack упал при этой задаче.
⚡️Deno 1.16

По самому релизу изменений Deno.core и Deno.std не так много.
Кратко: улучшили минорные WebApi, fetch умеет ходить в локальные файлы, добавили работу с localStorage, std/node стал более совместим.

https://deno.com/blog/v1.16

Интересно конечно по тулам вокруг Deno, которые произошли в последний месяц:

dp - прототип package.json для import-map cli deno, от разработчика из Deno. (Почитайте статью от него же про то как он работает в Deno)

deno.ns - Deno namespace для nodejs. Актуально для тех либ которые хотят поддерживать сразу 2 рантайма

dnt - Deno to npm package build tool.

deno playground - Теперь можно сразу публиковать в Deno Deploy из playground. Да и сам сайт Deploy преобразился

WebStorm Deno - переработан плагин для работы с Deno проектами, теперь он юзает Deno Language Server
✏️ Deno будет учавствовать в TC39 в лице Luca Casonato
Он уже пушил ранее предложения.

Какими вещами Deno будет заниматься в первую очередь:
- Улучшение поддержки не js файлов в ES module graph
- resource management
- Расширение функционала (async) iteration

https://deno.com/blog/deno-joins-tc39
Вышел Deno 1.18.
- Полная поддержка Web Cryptography API
- Автоматический поиск config файла по пути deno.json
- Шаги выполнения тестов Deno.test("mytest", (t) => { t.step("subtest", () => {
- Улучшение FFI API

https://deno.com/blog/v1.18
Forwarded from Denoland (Evgenii Karagodin)
Deno 1.20

🔥 На 60% улучшили скорость вызовов между V8 и кодом на Rust
📦 Добавили автоматическое сжатие HTTP ответов
📈 Добавили команду deno bench
🛠 Добавили команду deno task - аналог npm scripts

https://deno.com/blog/v1.20
2024/05/17 00:15:02
Back to Top
HTML Embed Code: