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

Ведет канал @irustm
Download Telegram
Вышел Deno v1.2.0

из интересного:
- deno test наконец то с regex filter флагом
- новый флаг --no-check сомнительно, но дает x2 в compiler
- Deno.ppid (Parent Proccess ID)
- Deno.consoleSize (stdout columns and rows)
- поддержка performance user-timing API

Подробнее:
https://github.com/denoland/deno/releases/tag/v1.2.0
Forwarded from Denoland (Evgenii Karagodin)
Неделю назад выкатили большое обновление для Deno Registry. Если раньше это был просто прокси для гитхаба, то теперь это уже становится похоже на настоящий реестр пакетов:

- версии пакетов становятся иммутабельными: код кешируется на стороне реестра и забирается с гитхаба только один раз для версии.
- удалить пакет из реестра нельзя.
- версиями считаются только теги из гита, больше нельзя сослаться на произвольный коммит или ветку. Если вам это нужно, то вы по-прежнему можете делать это напрямую с гитхаба или использовать другие сервисы.
- чтобы добавить свой пакет в реестр больше не нужно делать пулл реквест для файла database.json, теперь это работает автоматически через гитхаб вебхуки (это значит нужно добавить в свой пакет соответствующий вебхук, инструкция есть на странице https://deno.land/x).
- данные для фронтенда https://deno.land/x теперь отдаются самим реестром, а не фетчатся на лету с гитхаба.

На бекенде у них S3, MongoDB и лямбды с Deno. Кажется, что это первый публичный продакшен веб сервис написанный на Deno, так что может быть интересно посмотреть в исходники https://github.com/denoland/deno_registry2.

Дальше у них большие планы: считать и показывать количество скачиваний, показывать дерево зависимостей, запускать форматтер и линтер и т.д. За роадмапом можно следить тут https://github.com/denoland/deno_registry2/issues/35.
По плану, каждое 13 число месяца, вышел релиз Deno. v.1.3.0

Добавились дополнительные флаги
deno lint --ignore --json.
deno install --no-check
--reload
для deno bundle и deno info

Добавлена поддержка FileReader API (https://w3c.github.io/FileAPI/)

Поддержка Deno.run по url
Deno.run({ cmd: [new URL("temp.sh", import.meta.url), "foo", "bar"] });
Очередное обновление Deno v.1.4
deno std@0.69.0

Довольно много измений в этом релизе.

- Web Standard WebSocket API (unstable)
- Automatic restarts on file change (unstable)
deno run --watch

- Integrated test coverage
de
no test --coverage

- std: 3 breaking changing

Подробнее в посте:
https://deno.land/posts/v1.4
Forwarded from Вебня (Sergey Rubanov)
Вышел Deno 1.5

Основные нововведения:
- в бандлинг добавлен tree shaking, а также в 15 раз увеличена скорость бандлинга
- добавлены API alert, confirm и prompt, аналогичные соответствующим браузерным глобальным функциям
- улучшения REPL: автодополнения по нажатию tab, подсветка синтаксиса, top level await

https://deno.land/posts/v1.5
Тут есть интересный 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