С момента последней публикации, не увидел интересного контента связаного с Deno, достойного вашего внимания, но увидел много заблуждений и вопросов вокруг него.
На некоторые из них отвечаю в чате @denoland
Так же эти ответы дублирую в отдельный FAQ.
Если у вас есть вопросы, свои проекты, статьи связанные с Deno, которые остались без должного внимания, смело делитесь об этом в чате/личке/FAQ
На некоторые из них отвечаю в чате @denoland
Так же эти ответы дублирую в отдельный FAQ.
Если у вас есть вопросы, свои проекты, статьи связанные с Deno, которые остались без должного внимания, смело делитесь об этом в чате/личке/FAQ
Готовится большой рефакторинг внутреннего устройства Deno.
Много жарких дискуссии вызвал один из пунктов, по поводу переноса части TS на js. (Design Docs).
Ранее же был проведен эксперимент по переносу c TS на js . Результаты следующие:
Раян заверил что это касается только внутреннего устройства Deno, и будет охватывать максимум 5-10 разработчиков.
Для Deno Core Api будут отдельные d.ts.
Много жарких дискуссии вызвал один из пунктов, по поводу переноса части TS на js. (Design Docs).
Ранее же был проведен эксперимент по переносу c TS на js . Результаты следующие:
incremental build time:
1m 50s -> 1m 0s
release exe size (mac):
42mb -> 41mb
Раян заверил что это касается только внутреннего устройства Deno, и будет охватывать максимум 5-10 разработчиков.
Для Deno Core Api будут отдельные d.ts.
Вышел Deno v1.1.0
из интересного и ожидаемого:
- deno eval
- deno lint , rules как в eslint но скорости выше в 1000раз (?)
- deno fmt --check (дополнительно добавлен вывод diff )
- Deno.mainModule - вывод url начального запуска, deno run
- Deno.env.set("key", "value"); - Deno.env.delete("key");
deno/std обновлен до 0.57.0
Подробнее:
https://github.com/denoland/deno/releases/tag/v1.1.0
из интересного и ожидаемого:
- deno eval
-p
, флаг для выполнения ts/js кода немедленно, без экранирования- deno lint , rules как в eslint но скорости выше в 1000раз (?)
- deno fmt --check (дополнительно добавлен вывод diff )
- Deno.mainModule - вывод url начального запуска, deno run
- Deno.env.set("key", "value"); - Deno.env.delete("key");
deno/std обновлен до 0.57.0
Подробнее:
https://github.com/denoland/deno/releases/tag/v1.1.0
Состоялся официальный релиз jspm cdn.
jspm предоставляет из себя CDN, позволяющий напрямую загружать любой пакет из npm в браузере и других средах JS как полностью оптимизированный и нативный модуль JavaScript.
Очень рад что пользователи Deno дали мотивацию Guy Bedford на продолжение этого проекта.
Ну а jspm cli, все.
Подробнее:
https://jspm.org/jspm-dev-release
jspm предоставляет из себя CDN, позволяющий напрямую загружать любой пакет из npm в браузере и других средах JS как полностью оптимизированный и нативный модуль JavaScript.
Очень рад что пользователи Deno дали мотивацию Guy Bedford на продолжение этого проекта.
Ну а jspm cli, все.
Подробнее:
https://jspm.org/jspm-dev-release
Forwarded from Angular Fanatic (Rustam I)
В Deno сообществе почему то решили что для SSR удобнее всего брать React, и конечно внедрили JSX как часть Deno.core. И даже появились фреймворки на этой основе. Angular остался немного в сторонке в очередной раз =)
Поэтому решил совместить deno + angular: Angular Deno Renderer Engine.
Сейчас он больше готов для использования как любой другой template engine, например как тот же Handlebars, ejs и тд.
Сравнение Angular Uiversal на NodeJS и Deno по времени рендеринга (хотя это практически ничего и не значит):
Deno 1.1.2 Angular JIT: 3-8ms
Node 12.18.2 Angular JIT: 15-24ms
Node 12.18.2 Angular AOT: 5-13ms
Если у сообщества Angular будет достаточный интерес к этому проекту, то далее буду внедрять:
- Transfer State, (чтобы был прям настоящий SSR)
- Compiler на Deno, для AOT
- Поддержка различных препроцессоров
- Пререндер как в Scully
- HMR
https://github.com/alosaur/angular_deno
Поэтому решил совместить deno + angular: Angular Deno Renderer Engine.
Сейчас он больше готов для использования как любой другой template engine, например как тот же Handlebars, ejs и тд.
Сравнение Angular Uiversal на NodeJS и Deno по времени рендеринга (хотя это практически ничего и не значит):
Deno 1.1.2 Angular JIT: 3-8ms
Node 12.18.2 Angular JIT: 15-24ms
Node 12.18.2 Angular AOT: 5-13ms
Если у сообщества Angular будет достаточный интерес к этому проекту, то далее буду внедрять:
- Transfer State, (чтобы был прям настоящий SSR)
- Compiler на Deno, для AOT
- Поддержка различных препроцессоров
- Пререндер как в Scully
- HMR
https://github.com/alosaur/angular_deno
Вышел Deno v1.2.0
из интересного:
- deno test наконец то с regex filter флагом
- новый флаг
- 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
из интересного:
- 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
GitHub
Release v1.2.0 · denoland/deno
1.2.0 / 2020.07.13
Changes in the CLI:
feat(cli): Add --cert option to "deno upgrade" (#6609)
feat(cli): Add --config flag to "deno install" (#6204)
feat(cli): Add --json optio...
Changes in the CLI:
feat(cli): Add --cert option to "deno upgrade" (#6609)
feat(cli): Add --config flag to "deno install" (#6204)
feat(cli): Add --json optio...
Forwarded from Denoland (Evgenii Karagodin)
Неделю назад выкатили большое обновление для Deno Registry. Если раньше это был просто прокси для гитхаба, то теперь это уже становится похоже на настоящий реестр пакетов:
- версии пакетов становятся иммутабельными: код кешируется на стороне реестра и забирается с гитхаба только один раз для версии.
- удалить пакет из реестра нельзя.
- версиями считаются только теги из гита, больше нельзя сослаться на произвольный коммит или ветку. Если вам это нужно, то вы по-прежнему можете делать это напрямую с гитхаба или использовать другие сервисы.
- чтобы добавить свой пакет в реестр больше не нужно делать пулл реквест для файла
- данные для фронтенда https://deno.land/x теперь отдаются самим реестром, а не фетчатся на лету с гитхаба.
На бекенде у них S3, MongoDB и лямбды с Deno. Кажется, что это первый публичный продакшен веб сервис написанный на Deno, так что может быть интересно посмотреть в исходники https://github.com/denoland/deno_registry2.
Дальше у них большие планы: считать и показывать количество скачиваний, показывать дерево зависимостей, запускать форматтер и линтер и т.д. За роадмапом можно следить тут https://github.com/denoland/deno_registry2/issues/35.
- версии пакетов становятся иммутабельными: код кешируется на стороне реестра и забирается с гитхаба только один раз для версии.
- удалить пакет из реестра нельзя.
- версиями считаются только теги из гита, больше нельзя сослаться на произвольный коммит или ветку. Если вам это нужно, то вы по-прежнему можете делать это напрямую с гитхаба или использовать другие сервисы.
- чтобы добавить свой пакет в реестр больше не нужно делать пулл реквест для файла
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.
GitHub
GitHub - denoland/deno_registry2: The backend for the deno.land/x service
The backend for the deno.land/x service. Contribute to denoland/deno_registry2 development by creating an account on GitHub.
По плану, каждое 13 число месяца, вышел релиз Deno. v.1.3.0
Добавились дополнительные флаги
Поддержка Deno.run по url
Добавились дополнительные флаги
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 [email protected]
Довольно много измений в этом релизе.
- Web Standard WebSocket API (unstable)
- Automatic restarts on file change (unstable)
- Integrated test coverage
de
Подробнее в посте:
https://deno.land/posts/v1.4
deno [email protected]
Довольно много измений в этом релизе.
- 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
Deno Blog
Deno 1.4 Release Notes
Deno 1.4 adds support for the web standard WebSocket API, deno run --watch, and integrated test coverage. This is the largest feature release yet.
Forwarded from Deno Daily
https://github.com/denoland/deno/issues/7915
Был опубликован роадмап Deno на четвертый квартал 2020 года
#roadmap
Был опубликован роадмап Deno на четвертый квартал 2020 года
#roadmap
GitHub
Q4 2020 roadmap · Issue #7915 · denoland/deno
Here's the roadmap for cli and core for the last quarter of this year. Refactors: finish compiler/bundler refactor (#7225, #4752) refactor module loader in core/finish TLA implementation (#...
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
Основные нововведения:
- в бандлинг добавлен tree shaking, а также в 15 раз увеличена скорость бандлинга
- добавлены API alert, confirm и prompt, аналогичные соответствующим браузерным глобальным функциям
- улучшения REPL: автодополнения по нажатию tab, подсветка синтаксиса, top level await
https://deno.land/posts/v1.5
Deno Blog
Deno 1.5 Release Notes
Deno 1.5 improves `deno bundle` with support for tree shaking and a 15x speed improvement. This release also adds the `alert`, `confirm`, and `prompt` APIs and enhances the REPL.
Тут есть интересный 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://www.tg-me.com/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://www.tg-me.com/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.