Тут есть интересный bench фреймов на ноде и deno, ежедневно обновляемый.
интересен, тем что Alosaur оказался быстрее Deno 😃
Но тем не менее, Alosaur не позиционирует себя самым быстрым фреймворком и самым лучшим, как другие, (но согласно результатам этого bench, он является быстрым среди фреймов на deno)
интересен, тем что Alosaur оказался быстрее Deno 😃
Но тем не менее, Alosaur не позиционирует себя самым быстрым фреймворком и самым лучшим, как другие, (но согласно результатам этого bench, он является быстрым среди фреймов на deno)
Forwarded from Denoland (Stanislav)
https://github.com/denoland/deno/pull/8539
Закинули PR который (если будет влит) добавит в Deno возможность собирать скрипты в исполняемые файлы, пример из PR:
Закинули PR который (если будет влит) добавит в Deno возможность собирать скрипты в исполняемые файлы, пример из PR:
deno compile https://deno.land/std/http/file_server.ts
./file_server
HTTP server listening on http://0.0.0.0:4507/GitHub
POC deno compile by lucacasonato · Pull Request #8539 · denoland/deno
Closes #986
~/p/g/d/deno ❯❯❯ ./target/debug/deno compile https://deno.land/std/http/file_server.ts file_server
Bundle https://deno.land/std/http/file_server.ts
Check https://deno.land/std/http/file...
~/p/g/d/deno ❯❯❯ ./target/debug/deno compile https://deno.land/std/http/file_server.ts file_server
Bundle https://deno.land/std/http/file_server.ts
Check https://deno.land/std/http/file...
Вышел Deno v1.6
Фичи:
- Deno compile (https://t.me/denoFanatic/29) под
Не будут работать: web workers, dynamic import, V8 flags. Возможно появится кросс компиляция с использованием флага -target (пока compile только на текущей платформе). Размер исполняемого файла стремятся уменьшить в итоге до 20мб.
- Deno LSP, для того чтоб поддержать стандартный language-server-protocol
пока расширение vscode не переведено на него. Интересно что будет делать команда WebStorm, юзать его или оставят старый deno language server из npm. Кстати сейчас в WebStorm очень даже ок работают Deno definitions.
-
- TypeScript 4.1
- Ввели понятие
Теперь можно не дожидаться оф релиза версии, а попробоавать фичи прям то что в мастере deno.
- Experimental support for Mac Arm64
По поводу deno/std 0.80.0 и вообщем по Standard Library Working Group
Как и ранее все фичи приносит сообщество, и теперь std WG их корректирует. Запланированы встречи на ближайшие полгода, по их улучшению, и конечно я попытаюсь в них поучавствовать. Наиболее интересные мне это: encoding, http, log, mime, permissions,
signal
Кстати, можете почитать заметки прошлой встречи: (По типу давайте запихнем топ 500 либ npm в std и так далее)
https://deno.land/posts/v1.6
Фичи:
- Deno compile (https://t.me/denoFanatic/29) под
--unstable конечно жеНе будут работать: web workers, dynamic import, V8 flags. Возможно появится кросс компиляция с использованием флага -target (пока compile только на текущей платформе). Размер исполняемого файла стремятся уменьшить в итоге до 20мб.
- Deno LSP, для того чтоб поддержать стандартный language-server-protocol
пока расширение vscode не переведено на него. Интересно что будет делать команда WebStorm, юзать его или оставят старый deno language server из npm. Кстати сейчас в WebStorm очень даже ок работают Deno definitions.
-
"isolatedModules": true. Все сильнее strict type. + убрали из config, кстати, скоро совсем нельзя будет переопределить что либо из tsconfig. Вопрос как я помню застыл на декораторах.- TypeScript 4.1
- Ввели понятие
canary.Теперь можно не дожидаться оф релиза версии, а попробоавать фичи прям то что в мастере deno.
deno upgrade --canary --version hash комита- Experimental support for Mac Arm64
По поводу deno/std 0.80.0 и вообщем по Standard Library Working Group
Как и ранее все фичи приносит сообщество, и теперь std WG их корректирует. Запланированы встречи на ближайшие полгода, по их улучшению, и конечно я попытаюсь в них поучавствовать. Наиболее интересные мне это: encoding, http, log, mime, permissions,
signal
Кстати, можете почитать заметки прошлой встречи: (По типу давайте запихнем топ 500 либ npm в std и так далее)
https://deno.land/posts/v1.6
>deno upgrade
Forwarded from Denoland (Stanislav)
Был опубликован роадмап Deno на первый квартал 2021 года.
Из интересного в планах:
- Легкие бинарники на выходе из
- Поддержка WebGPU
Возможно:
- Поддержка HTTP/2
- Поддержка QUIC
Из интересного в планах:
- Легкие бинарники на выходе из
deno compile
- Поддержка Web Crypto API- Поддержка WebGPU
Возможно:
- Поддержка HTTP/2
- Поддержка QUIC
GitHub
Q1 2021 roadmap · Issue #8824 · denoland/deno
Roadmap Q1 2021 Scheduled releases: 1.7.0 - January, 19th 1.8.0 - March, 2nd planned features and refactors: consuming external source maps (#4499, #8054) this is partially done, by consuming inlin...
Визуализация зависимостей ES модулей в Deno:
https://deno-visualizer.danopia.net/dependencies-of/https/deno.land/x/alosaur/mod.ts
https://deno-visualizer.danopia.net/dependencies-of/https/deno.land/x/alosaur/mod.ts
В среду прошел очередной STD WG #4, сегодня залили видео
На повестке были 3 вопроса:
- http
- io
- log
По std/http прошли быстро, так как там всего 3 модуля, все остается как и было.
std/io - Довольно большое обсуждение, так как большинство методов было перенесено из Go std, и описания соответсвенно те же. Было принято решение некоторые функции переименовать + добавить к каждому описание + пример.
std/log - решили перенести как отдельный пакет в deno.land/x так как код очень спецефичен и сложен для понимания, напомню такое уже происходило с media_types, сейчас он в репозитории oak.
На повестке были 3 вопроса:
- http
- io
- log
По std/http прошли быстро, так как там всего 3 модуля, все остается как и было.
std/io - Довольно большое обсуждение, так как большинство методов было перенесено из Go std, и описания соответсвенно те же. Было принято решение некоторые функции переименовать + добавить к каждому описание + пример.
std/log - решили перенести как отдельный пакет в deno.land/x так как код очень спецефичен и сложен для понимания, напомню такое уже происходило с media_types, сейчас он в репозитории oak.
На прошлой неделе прошел очередной 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 std@0.89.0 - в основном изменения каснулись 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 std@0.89.0 - в основном изменения каснулись 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
Deno 1.11 Release Notes | Deno
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
Deno 1.12 Release Notes | Deno
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