На прошлой неделе прошел очередной 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.
На повестке было рассмотрено 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
Фичи:
- 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
Deno Blog
Deno 1.8 Release Notes
Deno 1.8 adds experimental support for the WebGPU API, adds support for importing private modules, stabilizes import maps, revamps coverage tooling, adds ICU to provide internationalization out of the box, and a whole lot more.
2 марта произошел инцидент, с хостом Deno - Cloudflare.
В результате чего были не доступны пакеты, но вскоре был поднят резервный.
Собственно, сейчас на странице https://status.deno.land/ вы можете наблюдать доступность сервисов Deno.
В результате чего были не доступны пакеты, но вскоре был поднят резервный.
Собственно, сейчас на странице 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 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. Согласно релизному плану 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
- 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
- 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
- доступны официальные 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
Deno Blog
Deno 1.11 Release Notes
The Deno 1.11 release adds new web APIs, resolves long standing issues, and improves editor experience.
Q3 2021 roadmap
- удаление поддержки нативных плагинов
- добавление ffi вместо нативных плагинов
- новый удобный API для subprocess
- stabilize native HTTP server
- WebSocket native HTTP serve
- поддержка Import Assertions
https://github.com/denoland/deno/issues/11168
- удаление поддержки нативных плагинов
- добавление 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
- Улучшена поддержка 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 Blog
Deno 1.12 Release Notes
The Deno 1.12 release adds server side WebSockets, support for WASM threads, new web crypto APIs and more.
⚡️ Вышел 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
Из крутых фич которых я совсем не ожидал в ближайшее время:
- 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 начал проходить большинство тестов WPT, и теперь можно смело обновлять browser-compat-data
https://deno.com/blog/deno-on-mdn
⚡️Deno 1.14
- More Web Crypto
- Config for lint and fmt
наконецто добавили эту фичу, стандартрый fmt не совсем был ок
теперь можно заменить в большинстве фреймворков router на данный web api
- Zero-copy transfers between workers
- File locking APIs
unstable, например фича может понадобиться для различных БД
Теперь можно преднастроить клиент для 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
- 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 упал при этой задаче.
- 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.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
Forwarded from Denoland (Stanislav)
Twitter
Deno
Slack chooses Deno for new development platform deno.com/blog/slack
✏️ Deno будет учавствовать в TC39 в лице Luca Casonato
Он уже пушил ранее предложения.
Какими вещами Deno будет заниматься в первую очередь:
- Улучшение поддержки не js файлов в ES module graph
- resource management
- Расширение функционала (async) iteration
https://deno.com/blog/deno-joins-tc39
Он уже пушил ранее предложения.
Какими вещами Deno будет заниматься в первую очередь:
- Улучшение поддержки не js файлов в ES module graph
- resource management
- Расширение функционала (async) iteration
https://deno.com/blog/deno-joins-tc39
Deno Blog
Deno joins TC39
Deno has joined the JavaScript standards committee to improve the language for everyone.
⚡ Вышел Deno 1.18.
- Полная поддержка Web Cryptography API
- Автоматический поиск config файла по пути deno.json
- Шаги выполнения тестов
- Улучшение FFI API
https://deno.com/blog/v1.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 ответов
📈 Добавили команду
🛠 Добавили команду
https://deno.com/blog/v1.20
🔥 На 60% улучшили скорость вызовов между V8 и кодом на Rust
📦 Добавили автоматическое сжатие HTTP ответов
📈 Добавили команду
deno bench
🛠 Добавили команду
deno task
- аналог npm scriptshttps://deno.com/blog/v1.20
Deno Blog
Deno 1.20 Release Notes
Deno 1.20 increases performance, auto-compresses http responses, adds 'deno task', adds 'deno bench', allows import maps in deno.json, and more