Awesome Deno 中文资源全图谱
《Deno 钻研之术》系列于 Deno v1 正式发售之日全新推出,每周不定期更新在 Github 中(https://github.com/hylerrix/deno-tutorial)。让我们一起循序渐进学 Deno,先易后难补 Node,面向未来开发属于自己的 Deno Web App。欢迎订阅,欢迎交流。
一个全新的技术会有怎样的生态?在对 Deno 的好奇和梳理过程中,基于已有的 Awesome Deno 英文列表全新出发,一个专注于中文技术圈的 Deno 资源列表呼之欲出。
为什么是 Awesome?§
Github 集市上广受欢迎的仓库有这么几大类:
- 语言类:如 Go、Rust、TypeScript 等,提供高级语言曾经的支持;
- 基础设施类:如 Linux、Docker 以及云设施等,用来运行、构建更多的顶层应用;
- 框架/库/运行时类:如 Deno、React、Tensorflow 等,搭建业务的基石;
- 业务类:如 freeCodeCamp、近期的疫情网站等,将整个项目业务源码开放给社区维护;
- 插件类:给各大浏览器、编辑器等环境提供拓展功能;
- Demo 类:对某项技术进行专项训练和分享;
- ......
此外,还有一类上面没有提到的,便是文档类。这包括开放的电子书、开放的博客以及开放的清单——名字带有 Awesome 的清单项目,就成了一套约定俗称的独特风景线。Github 上搜索 Awesome 关键字,可以看到围绕各个知名技术点的仓库中都有若干个获得数以万计的 Star 收藏。这一点连谷歌搜索引擎都做不到。
开源,不仅仅是知识内容的公开,更是协作一切的基石。
该怎样写好 Awesome 清单的 README.md?
由于 Awesome 项目大多只需要从仓库中的 README.md 展示所有内容,所以写出一个良好的 README.md 便是十分重要的。这包括:
- 友好的介绍文字:开门见山;
- 设计良好的目录:能从目录快速了解和索引这一切;
- 酷炫的 Logo:紧跟所围绕的技术本身 Logo 走;
- 可选的更新日志和路线图:让用户知道未来的方向;
- 参与贡献的方式与开源协议:鼓励更多人参与贡献;
- 一些独特性:标新立异,难以忘记。
没有技术含量的 Awesome 清单整理太无聊?
的确,单纯的梳理也需要花费不少的时间,累加起来都能玩好几局不错的游戏。对于自身的技术成长来说,也不会有直观的改进。但最重要的好处是,维护一份 Awesome 清单,可以让自己亲自参与创造,有更主动的机会去比别人更敏锐地观察生态圈的发展历程甚至发展方向。
该不该建立属于自己的 Awesome 清单?
如果你的技术学习时间较为充分,花一小部分时间来在社区维护一份 Awesome 清单是十分有趣的,也可以了解很多生态故事,结识很多好友。切记需要考虑的是:社区中是不是已经有相关的 Awesome 资源,并且已经初步“占领”市场了?毕竟没有人会喜欢给一大堆相差无几的清单点 Star。如果像本文这份清单一样,社区中已经有一份英文清单,再自己维护一份专注中文版的清单一起成长,也不错。
Awesome 的未来是什么?
文档就够了,我们可以翻阅到想要的一切。然而从程序员的角度来看这份清单,是不是能抽离出很多共同点?都是层级的标题下放置若干个链接、每个链接可能是文章、仓库地址、网站网址、视频地址等,最后再配上通用的介绍文字/贡献指南和开源协议...我有一个想法,就差一个程序员了。
急需你的贡献。
纯个人的梳理局限性很大,也很繁琐,快在社区中选个感兴趣的 Awesome 清单贡献开源吧!比如,这个 Awesome Deno CN?
正式开始吧。
注:本文截止统计于 2020-05-22,更多内容随时更新在 Github 上的 Awesome Deno CN 中。
Deno 中文资源全图谱 · v1.0.0[§
](https://github.com/sindresorhus/awesome)
目录§
- 为什么有这个项目?
- 独特之处
- 更新日志
- 贡献者
- 前言:从 Node.js 到 Deno.js
- 技术文档
- 官方文档
- 中文社区文档
- 基础设施
- DenoLand 核心库
- Deno 周边社区库
- 第三方库
- 在线沙箱
- Demo
- 技术教程
- 演讲稿(中文)
- 演讲稿(英文)
- 单篇文章(中文)
- 单篇文章(英文)
- 翻译文章(中文)
- 系列文章(中文)
- 系列文章(英文)
- 技术专栏(中文)
- 技术专栏(英文)
- 在线视频(中文)
- 在线视频(英文)
- 电子资源
- 技术社区
- 社区列表(全网)
- 讨论热帖(中文)
- 讨论热帖(英文)
- Github 开源组织
- 谁在用 Deno?
- 其它订阅
- 新闻媒体(英文)
- 社交媒体(英文)
- 开源协议
以下资源 🌟 代表品质推荐,⚠️ 代表注意事项。由于资源分类的多样性考虑,部分章节内容可能会有所重复。
独特之处§
- [x] 长期提供更新,收集越来越多高质量的 Deno 资源,愿我们与 Deno 一起成长。
- [x] 随着 Deno 主版本进行版本归档更新。
- [x] 配套独家《Deno 钻研之术》电子书并随着本项目一起成长。
- [x] 及时跟进 @denolib/awesome-deno 仓库。
- [x] 及时跟进 @olivewind/awesome-deno 仓库。
- [ ] 开发更好看的 UI 页面来展示这个资源列表。
更新日志§
- [x] 2020-04-14 初始化本项目,填充独特的中文版内容。
- [x] 2020-04-14 跟进最新的(180+ Star) @olivewind/awesome-deno 仓库内容。
- [x] 2020-05-13 新增《Deno 钻研之术》项目,将本项目作为前者的配套项目。
- [x] 2020-05-14 同步最新的 @denolib/awesome-deno 仓库内容。
- [x] 2020-05-17 跟进中文化后大改版的(200+ Star) @olivewind/awesome-deno-cn 仓库内容。
- [x] 2020-05-22 全网搜索 Deno 中英文资源并入库,发布 v1.0 版本并收录在《Deno 钻研之术》第二篇中。
前言:从 Node.js 到 Deno.js§
- 《Node.js 的设计缺陷》:官方 PDF 演讲稿。
- 《Design Mistakes in Node》Node 之父 Ryan Dahl 演讲 PPT 中文版 (2018 JS Conf Berlin):发布于 2018-06-03。
技术文档§
官方文档§
包括中文社区的文档。
- deno.land:🌟,Deno 官网。
- Deno API 类型手册:
- doc.deno.land:自动化 Deno 文档生成器。
- Deno Registry:Deno 第三方库汇总。
中文社区文档§
- @denodev/typedoc:🌟,Deno API 简体中文版。
基础设施§
DenoLand 核心库§
更多的官方模块可以在 deno_std 上找到,目前版本 0.52.0。
- deno/std/archive。
- deno/std/async。
- deno/std/bytes。
- deno/std/datetime。
- deno/std/encoding。
- deno/std/examples。
- deno/std/flags。
- deno/std/fmt。
- deno/std/fs。
- deno/std/hash。
- deno/std/http。
- deno/std/io。
- deno/std/log。
- deno/std/mime。
- deno/std/node。
- deno/std/path。
- deno/std/permissions。
- deno/std/signal。
- deno/std/testing。
- deno/std/textproto。
- deno/std/uuid。
- deno/std/ws。
Deno 周边社区库§
重点将第三方库中,Github 组织带有 Deno 关键字的库专注整理这里。
- @denolib/ms:轻松地将各种时间格式转换为毫秒。
- @denolib/qs:具有嵌套支持的 querystring 解析器。
- @denolib/camelcase:将破折号/点号/下划线/空格分隔的字符串转换为驼峰式;示例:foo-bar→fooBar。
- @denolib/camelcase:将破折号/点号/下划线/空格分隔的字符串转换为camelCase:foo-bar→fooBar。
- @denolib/marked:Markdown -> HTML 转换器。
- @denolib/ms:轻松地将各种时间格式转换为毫秒。
- @denopkg/denopkg:在 Deno 项目中使用 GitHub 上的代码的更简单方法。。
- @denopkg/denopkg.com:在 Deno 项目中直接使用来自 GitHub 代码的简单方法。
- @denoserverless/http-libs:HTTP 模块和类型。
- @denoserverless/jwt:auth0/jsonwebtoken 的端口。
- @denoserverless/type-fest:基本 TypeScript 类型的集合(sindresorhus 端口/type-fest)
第三方库§
更多内容可以看 Deno 官网上的第三方库列表。可以将你的存储库提交到 deno.land/x 中。
如果你有兴趣帮忙按字母排列下方的列表的话,欢迎 PR!
- @allain/expect:在 Deno 中编写 Jest 的助手。
- @alosaur/alosaur:具有许多装饰器的 Deno Web框架。
- @ameerthehacker/cli-spinner:在执行长任务时在终端中显示微调框。
- @ameerthehacker/deno-vscode:利用此扩展利用 VS Code 中内置的 typedef 和 intellisense。
- @axetroy/dvm:没有运行时相关性的 Deno 版本管理器。
- @BentoumiTech/denox:类似于 package.json 脚本,但在 Deno 上具有权限支持。
- @bokuweb/deno-pretty-assert:色彩鲜艳的 deno assert 库。
- @bokuweb/deno-pretty-assert:一个 Deno 下的 assertEqual 库。
- @bokuweb/wu-diff-js:一个差异库,使用 wu(O(NP))算法计算两个切片之间的差异。
- @BoltDoggy/dpm:Deno 软件包管理器,为 Deno 安装全局命令,比如 Denoget。—— DVM。
- @BoltDoggy/dcc:Deno 清空缓存,在下次运行时重新加载 dep。
- @buildondata/postgres:PostgreSQL 数据库驱动程序。
- @cacjs/cac:用于构建命令行应用程序的简单但功能强大的框架。
- @cardosomarcos/deno-dotenv:从.env加载deno项目的环境变量。
- @dontlaugh/packer-provisioner-deno:一个 Packer 插件,可轻松使用 Deno 脚本构建虚拟机映像。
- @eliassjogreen/denon:像 Nodemon 的 Deno 库。
- @ekaragodin/clone:一个方便克隆的简单实用程序。
- @eliassjogreen/deno_tokenizer:Deno 的简单标记器。
- @eliassjogreen/denon../watcher.ts:具有等待生成器的文件监视程序。
- @eliassjogreen/webview:Webview 的 Deno 绑定,这是一个用于创建基于 Web 的桌面 GUI 的小型库。
- @garronej/evt:EventEmitter 的安全替代品。
- @garronej/denoify:对于希望支持 Deno 但不想编写和维护端口的 NPM 模块作者。
- @hashrock/deno-fnparse:一个非常简单的 JavaScript 解析器、组合器。
- @hashrock/deno-opn:一个可以打开网站、(可执行)文件之类资源的跨平台工具。
- @hashrock/deno-fnparse/.../csv:一个简单的 CSV 解析器。
- @hashrock/deno-fnparse:一个非常简单的 JavaScript 解析器组合器。
- @hashrock/deno-opn:打开网站,文件,可执行文件之类的东西,跨平台。
- @hayd/deno-udd:更新面依赖:将导入语句更新为最新发布的版本。
- @halvardssm/deno-nessie:为 PostgreSQL、MySQL 和 SQLite 创建,迁移和回滚迁移。
- @hayd/deno-docker:数个 Docker 镜像。
- @hayd/deno-using:带有 Deno 语句的 Python 样式。
- @hayd/deno-globrex:globrex 的端口为 deno,globex 的端口为正则表达式。
- @jinjor/watch:文件观察器(热更新)。
- @justjavac/vscode-deno:🌟,VS Code 扩展,使用 typescript-deno-plugin 提供 Deno 支持。
- @justjavac/dvm:Deno 版本管理器:管理多个活动的 Deno 版本。
- @justjavac/typescript-deno-plugin:Deno 语言服务插件,在编辑器中的 TypeScript 文件中提供智能感知。
- @justjavac/vscode-deno:VS Code 扩展,使用 typescript-deno-plugin 对 Deno 提供支持。
- @jinjor/elm-live-reload:一个用 Deno 编写的 Elm Live Reloader。
- @jcardama/deno-slugify:Deno 的字符串节流器。
- @jinjor/deno-playground/.../expressive:一个类似于 Express 的 Deno Web 框架。
- @jinjor/deno-playground/.../watch:一个文件监听程序。
- @jinjor/deno-playground/.../elm-live-reload:用 Deno 编写的 Elm Live Reloader。
- @jinjor/deno-task-runner:像 NPM 脚本一样编写任务。
- @keroxp/deno-redis:一个由 Deno 实现的实验性的 Redis 客户端。
- @keroxp/deno-ws:一个 Websocket 服务器的实验性实现。
- @kitsonk/oak:一个用于 Deno 网络服务器的中间件框架。
- @keroxp/servest:渐进式HTTP服务器/路由器。
- @keroxp/deno-ws:Websocket 服务器的实验性实现。
- @keroxp/deno-redis:Redis Client for Deno 的实验实现。
- @lucascaro/denoversion:Deno 的 SemVer + Git 版本管理。
- @lucascaro/deno-uuid:Deno 的 UUID 模块。
- @luvies/lazy:类似于 linq 的惰性求值迭代模块。
- @muhibbudins/deno-yaml:一个使用 Deno 的简单 Yaml 解析器。
- @MarkTiedemann/deno.mk:用于安装和运行 Deno 的跨平台 Makefile。
- @maxmcd/deno-docker:一个 Docker 镜像。
- @Maxim-Mazurok/sax-ts:从 sax-js 移植的SAX风格的XML解析器。
- @manyuanrong/sql-builder:SQL 查询生成器。
- @manyuanrong/dso:一个基于 MySQL 的简单 ORM 库。
- @manyuanrong/deno-smtp:SMTP 的 SMTP 邮件发件人。
- @manyuanrong/deno-mysql:MySQL 数据库驱动程序。
- @manyuanrong/deno_mongo:MongoDB 数据库驱动程序。
- @manyuanrong/deno-plugin-prepare:一个用于管理 Dedeno Native 插件依赖关系的库。
- @manyuanrong/deno-checksum:SHA1/MD5 算法。
- @manyuanrong/deno-deamon:使Deno程序在后台运行。
- @manyuanrong/bytes_formater:格式化字节(Uint8Array,ArrayBufferView ...)输出,在调试 IO 功能时很有用。
- @motss/deno_mod/.../normalize_diacritics:删除字符串中的重音符号/变音符号。
- @nekobato/deno-xml-parser:一个从 segmentio/xml-parser 移植的 Deno XML 解析器。
- @npmjs.com/deno_ls_plugin:一个 TypeScript 插件,它将允许 Deno 之外的 TypeScript 以类似于在 Deno 内部进行解析的方式来解析模块。
- @nekobato/deno-xml-parser:从 segmentio/xml-parser 移植来的 Deno XML 解析器。
- @NMathar/deno-express:Node Express已移植到Deno。
- @OnikurYH/deno-prettystring:格式化,修剪和删除字符串中字符之间的多余空白。
- @oakserver/oak:用于 Deno 网络服务器的中间件框架。
- @pietvanzoen/deno-dotenv:Dotenv 处理 deno。
- @pikapkg/builders/.../pika deno plugin。
- @partheseas/gardens:一个无处不在的 JavaScript 记录实用程序。
- @syumai/dejs:一个用于 Deno 的 ejs 模板引擎。
- @syumai/dinatra:🌟,一个类似于 Sinatra 的轻量级 Deno Web 应用程序框架。
- @syumai/dejs:edeno 的 ejs 模板引擎。
- @sholladay/pogo:一个 Deno 服务端框架。
- @syumai/denoget:denoget 安装可执行的 deno 脚本。
- @syumai/deno-libs/.../denoget:安装可执行的 Deno 脚本。
- @syumai/deno-libs/.../denoinit:为 Deno 项目生成有用的文件。
- @siokas/denomander:Deno 命令行界面的灵感来自 commander.js。
- @timonson/djwt:根据 JWT 和 JWS 规范在 Deno 上创建 JSON Web 令牌(JWT)。
- @timonson/gentleRpc:用于 Deno 和浏览器的 JSON-RPC 2.0 TypeScript 库。
- @zhmushan/abc:一个不错的 Deno Web 框架。
- @zekth/deno_case_style:不同大小写样式的字符串验证器和格式化程序,例如 camelCase 等。
- @zekth/deno_random_interval:帮助器生成随机间隔。
- @zekth/deno_tiny_templates:Deno 的模板渲染器。
- @zhmushan/dev_server:让 TypeScript 文件直接在 script 标签中使用。
底层生态§
Deno 本身依赖的技术的清单库
- @dzharii/awesome-typeScript。
- @semlinker/awesome-typeScript。
- @rust-unofficial/awesome-rust。
- @sindresorhus/awesome-nodejs。
- @avelino/awesome-go。
- @jobbole/awesome-go-cn:中文版。
在线沙箱§
- deno-play.app:(⚠ 证书问题)。
- deno.town:在线执行 Deno 代码。
技术教程§
演讲稿(中文)§
- ...逐步添加中,欢迎 Star & Fork & PR。
演讲稿(英文)§
- Ryan Dahl - 我为 Node.js 感到遗憾的 10 件事 | JSConf EU 2018
- Ryan Dahl - Deno, 新的服务器端运行时 | JSDC 2018#A01
- Ryan Dahl - Deno, 一种新的 JavaScript 方法 | JS Fest 2019 Spring
- Rafał Pocztarski — 从 Node.js 到 Deno -使用 V8 和 Rust 构建的 JavaScript / TypeScript 运行时[EN]
- Ryan Dahl: JavaScript 和 TypeScript 的安全运行时 | js.la April 2019
- Ryan Dahl: Deno, 一种新的 JavaScript 方法 | HolyJS 2019 Piter
- Rafał Pocztarski - 什么是 Deno? 2020年代用于现代 JavaScript 和 TypeScript 后端的新运行时 | Deno Warsaw
- Michał Sabiniarz - 如何为 Deno 做贡献 | Deno Warsaw
- Bartek Iwańczuk - Deno 内部是如何构建现代运行时 | Deno Warsaw
- Ryan Dahl & Kitson Kelly: Deno 是一种新的 JavaScript 方法 | TSConf 2019
单篇文章(中文)§
专注于收集高质量的博客文章,更多内容可以在谷歌/百度上搜索。目前 Deno 文章不多,尽可能多的诺列不设内容质量限制。
- 听说要干掉node.js?用Deno实现价值上亿的AI核心算法试一下:发布于 2020-05-14。
- 了不起的 Deno 入门教程,发布于 2020-05-14。
- Deno 运行时入门教程:Node.js 的替代品:🌟,发布于 2020-01-26。
- 学得动的 Deno:发布于 2018-10-19。
- Deno 并不是下一代 Node.js:🌟,发布于 2018-06-04。
- 让我们一起来学习别人学不动的 Deno:发布于 2018-06-03。
- 快速了解 deno 目前的 API:发布于 2018-06-03。
- 玩 Deno 遇到问题的解决方案:发布于 2018-06-02。
- 我不看好 Deno:发布于 2020-05-10。
单篇文章(英文)§
- First thoughts about Deno:发布于 2020-05-20。
- Is Deno the new Node?:发布于 2020-05-20。
- Deno vs. Node.js — Here are the most Important Differences:发布于 2020-05-18。
- From Node to Deno:发布于 2020-05-17。
- Why I Believe Deno is a Step in the Wrong Direction for JavaScript Runtime Environments:发布于 2020-05-14。
- The Deno Handbook: A TypeScript Runtime Tutorial with Code Examples:发布于 2020-05-12。
- Learn Deno: Chat app:发布于 2020-05-10。
- Deno 1.0: What you need to know:发布于 2020-05-06。
- Forget NodeJS! Build native TypeScript applications with Deno 🦖:发布于 2020-02-18。
- What’s Deno, and how is it different from Node.js?:发布于 2019-07-09。
- What is Deno? A ‘better’ Node.js:发布于 2020-02-28。
- Ryan Dahl’s Node.js regrets lead to Deno:发布于 2018-06-21。
翻译文章(中文)§
这里专门抽来出来中文文章中,是翻译自其它语言(如英语)的文章。
- Deno 1.0 即将发布,你需要知道的都在这里了:原文发布于 2020-05-06 日。
系列文章(中文)§
目前包括可能会写成电子书的资源。
- Deno 进阶开发笔记:不定时更新。
- Deno 手册。
系列文章(英文)§
- V8 Docs for Deno:面向 Deno 的 V8 文档。
- A Guide to Deno Core (Design & For Contributors):(⚠ 内容过期),发布于 2019 年。
- Deno 源码贡献指南(英文版):托管于 Gitbook 上。
技术专栏(中文)§
- Deno 开发者社区:知乎专栏,@justjavac 主导。
- Deno 世界:知乎专栏,@嘤嘤 主导。
技术专栏(英文)§
- ...逐步添加中,欢迎 Star & Fork & PR。
在线视频(中文)§
在线视频(英文)§
电子资源§
专注收集公开免费的 PDF、PNG 以及电子书等资源,放置在本项目的 resources 文件夹下。
技术社区§
社区列表(全网)§
- Deno Discord:🌟,Discord 上的 Deno 官方聊天室,有中文社区。
- deno.dev:🌟,开发中,@justjavac 主导。
- deno.js.cn:🌟,Deno 中文社区,@justjavac 主导。
- denocn.org:🌟,Deno 中文社区,@manyuanrong 主导。
- yydeno:YY 大前端团队 Deno 仓库。
讨论热帖(中文)§
- Deno 会在短期内取代 Node 吗?:发布于 2020-05-22。
- @v2ex/Deno 1.0:发布于 2020-05-13。
- @v2ex/看了 Deno,感觉 TS 前景不可估量啊:发布于 2020-03-08。
讨论热帖(英文)§
Github 开源组织§
重点收集专注于使用 & 回馈 Deno 生态圈的 Github 组织。暂不考虑可能有内容会与“技术社区”栏目重叠的问题。
- Deno Land:Deno 官方 Github 组织。
- Deno Dev:Deno 第三方组织之一,@justjavac 主导。
- Deno Lib:Deno 第三方组织。
谁在用 Deno?§
重点收集已经部署在生产环境的应用,欢迎推荐你的案例,逐步完善中。
- ...逐步添加中,欢迎 Star & Fork & PR。
其它订阅§
新闻媒体(英文)§
社交媒体(英文)§
- twitter@deno_land:Deno Land 官方推特。
订阅 & 待续§
本文编号 002,属于《Deno 钻研之术》的生态篇,未来计划逐步展开添加的章节并填充更多的文章,如:
- 基础篇:循序渐进学 Deno 基础知识;
- 标准库篇:深入标准库的内部世界;
- CLI 篇:探索 CLI 命令行的知识;
- Web 篇:打造 Web 开发基石;
- Node 篇:先易后难补 Node 知识,探索与 Deno 的异与同;
- Rust 篇:探索 Deno 底层有关 Rust 的更多知识;
- 前端篇:探索 Deno Web 前端应用开发的方式;
- 后端篇:探索 Deno Web 后端应用开发的方式;
- 架构篇:深入到 Deno 底层读 V8,学架构;
- 生态篇:介绍 Deno 生态的相关内容;
- 翻译篇:【单独编号】翻译优质的、授权的英文一手博文。
欢迎订阅,一起成长,敬请 Star, Watch & Issue 开源仓库《Deno 钻研之术》!。
题外话:截止今天,短短的 9 天仓库涨到人生第一个 108 Star,我还在繁忙的公司任务外更新的这么慢,有点慌~。那就争取每周 2+ 篇吧。🤡