Deno Fanatic
220 subscribers
4 photos
54 links
Deno всем!

Ведет канал @irustm
Download Telegram
Тут есть интересный bench фреймов на ноде и deno, ежедневно обновляемый.

интересен, тем что Alosaur оказался быстрее Deno 😃

Но тем не менее, Alosaur не позиционирует себя самым быстрым фреймворком и самым лучшим, как другие, (но согласно результатам этого bench, он является быстрым среди фреймов на deno)
Forwarded from Denoland (Stanislav)
https://github.com/denoland/deno/pull/8539

Закинули 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/
Вышел Deno 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 года.

Из интересного в планах:
- Легкие бинарники на выходе из deno compile
- Поддержка Web Crypto API
- Поддержка WebGPU

Возможно:
- Поддержка HTTP/2
- Поддержка QUIC
Визуализация зависимостей ES модулей в Deno:

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.
На прошлой неделе прошел очередной 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 std@0.89.0 - в основном изменения каснулись 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