# Awesome Deno

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

This list is a collection of the best Deno modules and resources.

## Contents

- Docs
  - Official Docs
  - External Docs
  - Online Playgrounds
- Modules
  - Automation
  - CLI utils
  - Cloud APIs
  - Database
  - Editor framework
  - Frontend development
  - Frontend framework
  - Game engine
  - Logging
  - Machine Learning
  - Mail
  - Markdown
  - Math
  - Static site generator
  - String utils
  - Social Platform APIs
  - Template engine
  - Testing
  - Utils
  - Web framework
  - WebSocket
  - Web utils
  - Webview
  - XML
- Registries
- Showcases
- Tools
- Integrations
- Articles
- Blogs/Newsletters
- Presentations
- Resources
  - Books
- Resources in Other Languages
  - Chinese
  - Hebrew
  - Indonesian
  - Italian
  - Japanese
  - Russian
  - Spanish
  - Darija (Arabe marocain)
  - Kurdish (Central)

## Docs

### Official Docs

- Official Site
- Deno Manual
- Deno API Reference
- Deno Standard Modules

### External Docs

- V8 Docs for Deno

### Online Playgrounds

- Deno Starter in Codesandbox
- myCompiler.io
- Repl.it

## Modules

### Automation

- autopilot - Autopilot - Cross-platform web automation with Deno.
- swissknife - SwissKnife - Deno Swiss Knife tools for Windows.

### CLI utils

- cac - Simple yet powerful framework for building command-line apps.
- charmd - A simple, extendable markdown renderer for your terminal.
- chart - Console ASCII line charts with no dependencies.
- cli-spinner - Show spinners in the terminal while running long tasks.
- cliffy - The complete solution for building interactive command-line tools.
- kia - Simple terminal spinners for Deno 🦕
- terminal_images - A Deno module and CLI tool for displaying images in the terminal.
- tui - Module which allows easy creation of Terminal User Interfaces.
- with-env - Simple command line utilty for executing commands with one or more .env files.
- yargs - The modern, pirate-themed successor to optimist.

### Cloud APIs

- aws-api - From-scratch Typescript AWS API client built for Deno.
- googleapis - Auto-generated Google API clients for Deno.

### Database

- aloedb - Light, Embeddable, NoSQL database for Deno without dependencies.
- cotton - SQL Database Toolkit for deno
- dangoDB - A MongoDB ODM for Deno.
- denodb - MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno.
- deno_mongo - MongoDB database driver.
- deno_mysql - MySQL database driver.
- dndb - Persistent and embedable NoSQL database engine written for Deno 🦕.
- dongoose - A simple and easy to use ORM for Deno KV.
- dsddb - A dead simple persistant key-value database utilizing the JSON format.
- dso - A simple ORM library based on mysql.
- maxminddb - A library that enables the usage of MaxmindDB geoIP database files
- nessie - Create, migrate and rollback migrations for PostgreSQL, MySQL and SQLite.
- postgres - Driver for PostgreSQL database.
- r2d2 - Fast, lightweight Redis client library for Deno.
- redis - An experimental implementation of redis client for deno.
- sql-builder - An sql query builder.
- yongo - Subset of Mongoose api in deno (like populate) but will not fully copy mongoose

### Editor framework

- Denops - 🐜 An ecosystem to write Vim/Neovim plugins with Deno.

### Frontend development

- postcss - A tool for transforming styles with JS plugins.

### Frontend framework

- aleph.js - A React framework in Deno, inspired by Next.js.
- fresh - The next-gen web framework.
- packup - Zero-config web application packager for Deno.
- ultra - 💎 Modern Streaming React Framework in Deno.

### Game engine

- caviar - ⚡ Blazing fast, modern, Game Engine powered by WebGPU for Deno and the browser
- neko - 🐈 caviar’s twin frame buffer deno module with a framebuffer canvas implementation
- sdl2 - SDL2 module for Deno

### Image

- ImageScript - Image processing in JavaScript, utilizing WebAssembly for performance.
- monke - Color quantization and dithering library with extra image filters (blur, invert, etc).

### Logging

- sentry_deno - Unofficial port of the Sentry SDK for JavaScript to Deno.
- dlog - A ussefull logger for the prompt with icons or simple version!
- LogTape - Simple logging library with zero dependencies for Deno/Node.js/Bun/browsers.

### Machine learning

- classy-lala - Single-layer perceptrons for supervised learning tasks.
- netsaur - Powerful machine learning, accelerated by WebGPU
- synaptic - Dependency-less neural network library ported to deno
- appraisal - Feature extraction and conversion.

### Mail

- deno-smtp - A smtp mail sender for deno.

### Markdown

- marked - Markdown-to-HTML converter.

### Math

- neo - Matrix and other math, accelerated by WebGPU

### Static site generator

- lume - A static site generator similar to Jekyll or Eleventy with support for multiple file formats.
- pagic - The easiest way to generate static html page from markdown, built with Deno.

### String utils

- camelcase - Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar.
- deno_case_style - String validator and formater for different case style. eg: camelCase etc.
- deno-json-colorizer - A library for colorizing JSON strings in Deno
- deno-prettystring - Format, trim and remove extra white spaces between characters from string.
- deno-slugify - A string slugifier for deno.
- normalize_diacritics - Remove accents/diacritics in string.
- written - A provides a set of utilities for manipulating text, with a focus on providing typographic tools rather than pure string manipulation.

### Social Platform APIs

- grammY - Telegram Bot API framework for Deno.
- grm - Telegram MTProto client for Deno.
- twi - Twitter API v2 client for Deno.
- discordeno - Discord API library for Deno
- MTKruto - Deno-first, cross-runtime client library for Telegram’s MTProto API.

### Template engine

- dejs - Ejs template engine for deno.
- deno_tiny_templates - Template renderer for deno.
- eta - Fast, lightweight, and configurable embedded template engine.
- handlebars - Handlebars template engine for deno
- mustache - Mustache template engine for deno

### Testing

- deno-puppeteer - A library which provides a high-level API to control Chromium or Chrome over the DevTools Protocol.
- expect - Helpers for writing jest like expect tests in deno.
- merlin - Testing and Benchmarking framework for deno 🧙‍♂️
- pretty_benching - A small library to make your Deno benchmarking progress and results look pretty.
- qunitx - Zero dependency, fully customizable, mature, universal test API that can run interchangably in node.js, Deno & browser, using default runtime test runners.
- rhum - A lightweight testing framework for Deno.
- superdeno - Super-agent driven library for testing Deno HTTP servers.
- superoak - HTTP assertions for Oak made easy via SuperDeno.
- tepi - A .http Test Runner
- tincan - A Jest-like testing library for Deno.
- unexpected - Extensible BDD assertion toolkit.
- unitest - Deno-first universal unit testing framework.

### Utils

- bettermap - A TypeScript extension of the JavaScript Map with Array-like features.
- beno - A configuration manager typed and faster for Deno Inspired in Viper of Golang
- buckets - Bundle assets and scripts in a single executable file.
- bytes_formater - Format bytes (Uint8Array, ArrayBufferView, etc) output, useful when debugging IO functions.
- coffee - Deno Configuration - a type-safe, easy to use Deno config manager.
- colors - Color conversions and operations in TypeScript.
- croner - Cron library with advanced scheduling features, well-documented API, and zero dependencies.
- computed_types - Joi like validators for Typescript and Deno.
- dcc - Deno Cache Clean, reloading deps when next running.
- denon - A file watcher with a for-await generator.
- deno-config - Utility to streamline deno app configuration management through cli, .env and json files
- deno-context - Propagate deadlines, a cancellation and other request-scoped values to multiple promise. The behaviour is like Go’s context.
- deno_cron - A cron Job scheduler that allows you to write human readable cron syntax with tons of flexibility
- deno-deamon - Make the Deno program run in the background.
- deno-dotenv
  - pietvanzoen/deno-dotenv - Dotenv handling for deno.
  - cardosomarcos/deno-dotenv - Loads environment variables from .env for Deno projects.
- deno-envconfig - Configuration management utility.
- deno-fnparse - An extremely simple parser combinator for JavaScript.
- deno-globrex - Port of globrex to deno, glob to regular expression.
- deno_notify - Send desktop notifications on all platforms.
- deno-opn - Opens stuff like websites, files, executables. Cross-platform.
- deno-plugin-prepare - A library for managing Deno native plugin dependencies.
- deno_random_interval - Helper to generate random interval.
- deno_tokenizer - A simple tokenizer for deno.
- deno-using - An python-style with statements for deno.
- deno-validation - A general purpose validation library for Deno.
- dinoenv - tiny library to manage environment variables with deno.
- durationjs - Get formatted time duration from a timestamp or a human-readable string.
- draco - File and folder multiplatform utils for Deno!
- ensure - Ensure you are running a minimum version of Deno, Typescript, or V8.
- evt - Type safe replacement for EventEmitter.
- fastest-validator - Schema validator for all javascript platforms
- fortuna - Weighted gacha system.
- fossil - A value-type validation suite.
- garn-yaml - Read or write yaml interpolating env variables.
- garn-validator - Create validations with ease.
- invert-kv - Invert key-value pairs in Deno.
- lazy - A linq-like lazy-evaluation iteration module.
- locale-kit (GitHub) - A internationalisation/localisation/translation (i18n/l10n/t9n) library with a wrapper for Fresh and support for plurals and dynamic replacement.
- maze_generator - Javascript module for generating, solving, analyzing and displaying mazes.
- ms - Easily convert various time formats to milliseconds.
- online - Check if you’re currently online in Deno.
- optionals - Rust-like error handling and options with exhaustive pattern matching.
- qrcode - QR code image generator for Deno.
- recursive-readdir - Recursively read directories in Deno.
- rubico - 🏞 [a]synchronous function composition; it just works.
- solc - 💎 Solidity bindings for Deno.
- switcher4deno - Feature Flag Deno SDK client for Switcher-API.
- tryify - Functional style error handling; never throw/try/catch/finally again.
- type-fest - A collection of essential TypeScript types (port of sindresorhus/type-fest).
- unified-deno-lock - Powerful and simple lock (mutex) library to handle race conditions with zero dependencies
- wasm-gzip - Perform gzip operations for Deno.
- watch - A file watcher.
- wu-diff-js - A diff library to compute differences between two slices using wu(the O(NP)) algorithm.
- PLS - Use 2 lines to persist localStorage in any database, including, but not limited to, MongoDB, PostgreSQL and Redis.

### Validation

- zod - TypeScript-first schema validation with static type inference.

### Video

- Fast Forward - An easy to use ffmpeg module for Deno. 🦕

### Web framework

- aqua - A minimal and fast web framework for Deno.
- alosaur - Alosaur - Deno web framework with many ES Decorators.
- danet - A Savory web framework for Deno heavily inspired by Nest.js.
- drash - A REST microframework for Deno’s HTTP server with zero dependencies.
- faster - A fast and optimized middleware server with a set of useful middlwares.
- hono - Ultrafast web framework for Cloudflare Workers, Deno, and Bun. Fast, but not only fast.
- oak - A middleware framework for Deno’s net server.
  - oak-http-proxy - Proxy middleware for Deno Oak HTTP servers.
- opine - Fast, minimalist web framework ported from ExpressJS.
  - opine-http-proxy - Proxy middleware for Deno Opine HTTP servers.
- wren - A small, but powerful HTTP library with a functional spin for creating composable web apps, built for convenience and simplicity

### WebSocket

- deno-websocket - 🦕 A simple WebSocket library like ws of node.js library.
- dropper - Custom event-based WebSockets framework for building real-time apps on Deno 🦕
- websocket_server - A WebSocket server library.
- wocket - A WebSocket library for Deno.

### Web utils

- compression - Deno HTTP compression middleware.
- djwt - Make JSON Web Tokens (JWT) on Deno based on JWT and JWS specifications.
- forwarded - Deno port of `forwarded` library.
- fresh_chart - A server-side-rendered charting library for Fresh.
- gentleRpc - A JSON-RPC 2.0 TypeScript library for Deno and the browser.
- gql - Universal GraphQL HTTP middleware.
- graphql-tag - GraphQL schema AST from template literal.
- nats - A Deno client for the NATS messaging system.
- obsidian - A native GraphQL caching client and server module.
- qs - A query string parser with nesting support.
- react-icons - React Icons converted to preact for deno fresh.
- router - A high-performance basic router works anywhere.
- rpc - JSONRPC server implementation for Deno.
- status - HTTP codes and status utility for Deno.
- squishy_cookies - Easily sign and verify cookies.
- ts-prometheus - A prometheus client.
- up - Check if a website is up in Deno.
- youtube-deno - A Deno client library for the YouTube Data API for any interaction with YouTube.

### Webview

- Astrodon - Modular framework for building native multi-platform apps with Deno and webview.
- webview - Deno bindings for webview, a tiny library for creating web-based desktop GUIs.

### XML

- deno-xml-parser - Deno XML parser ported from segmentio/xml-parser.
- sax-ts - SAX-style XML parser ported from sax-js.

## Registries

- crux.land - A free registry service meant for hosting small ( < 10kB) single deno scripts.
- Deno PKG - An easier way to use code from GitHub in your Deno project.
- Denopkg.dev - Use any public/private repository from GitHub/GitLab in your Deno project.
- deno.land/x/ - The official 3rd party module registry.
- nest.land - An immutable, blockchain powered Deno package registry. 🥚

## Showcases

- Deno Rest - A Boilerplate for deno RESTful apis.
- Deno Seed - Complete boilerplate for development. :seedling:
- Edrys - Remote Teaching Software
- Fresh Showcase - The official showcase of Fresh apps.
- GitHub Profile Trophy - 🏆 Add dynamically generated GitHub Trophy on your readme
- Saleor Deno Merch - A fork of the original Deno Merch e-commerce website, rebuilt with Saleor.
- The Official Showcase - The official showcase of Deno.
- UsingDeno - Curated list of Web Applications & Projects using Deno 🦕.

## Tools

- clone - A simple utility for the convenient clone.
- decense - Generate a license with one `deno run` command.
- dedep - Manage dependency versions.
- denoflow - Configuration as code, use YAML to write automated workflows that run on Deno, with any Deno modules, Typescript/Javascript codes
- denoify - For NPM module authors that would like to support Deno but do not want to write and maintain a port.
- denoinit - Denoinit generates useful files for Deno project.
- denoliver - A simple, dependency free file server with live reload.
- denomander - Deno command-line interfaces inspired from commander.js.
- denon - A daemon script runner, like nodemon. Built in and for Deno.
- denopendabot - Dependabot for Deno projects.
- denopkg - An easier way to use code from GitHub in your Deno project.
- denoversion - SemVer and git version management for Deno.
- denox - Like packages.json scripts, but for Deno with permissions support.
- deno.mk - Cross-platform Makefile for installing and running Deno.
- deno_docker - Latest dockerfiles and images for Deno - alpine, centos, debian, ubuntu.
- dev_server - Let TypeScript files be used directly in the script tag.
- dmm - Lightweight Deno Module Manager
- dnt - Deno to npm package build tool.
- dpm
  - BoltDoggy/deno#dpm - Deno Package Manager, install global command for deno. like denoget.
  - dpmland/dpm - Deno Package Manager, a NPM | Yarn Experience for Deno
- dvm
  - asdf-community/asdf-deno - Deno plugin for asdf
  - justjavac/dvm - Deno Version Manager: manage multiple active Deno versions.
  - axetroy/dvm - Version manger for Deno without runtime dependencies.
  - dvm.cmd - Deno Version Manager for Windows. Written as a single batch file.
  - ghosind/dvm - A lightweight Deno Version Manager for Linux/MacOS.
- entype - A CLI tool used to generate type definitions for serialised data, currently supporting JSON to Rust and TypeScript.
- kopo-cli - A Deno registry browser in the terminal.
- make-deno-edition - Automatically makes package.json projects (such as npm packages and node.js modules) compatible with Deno.
- packer-provisioner-deno - A Packer plugin that makes it easy to build virtual machine images with Deno scripts.
- pre-commit-deno - pre-commit git hooks for Deno projects.
- pup - Advanced process manager for Deno. With autorestart, fs watch, cron start, process telemetry, ipc, clustering, load balancer and more.
- starter - Deno module starter template with GitHub Actions CI
- trex - Package management like npm for deno.
- udd - Update Deno dependencies: updates import statements to their latest published version.
- velociraptor - An npm-style script runner for Deno.
- vscode-deno - VS Code extension that provides Deno support using the `TypeScript Deno language service plugin`.
- vscode-deno-starter - VS Code project boilerplate to get started with Deno.
- denofn-selfhosted - Self-hosted Deno functions, made with Deno and Docker.

## Integrations

- Slack Custom Functions - Build custom Run On Slack functions using Deno.
- Netlify Edge Functions - Edge Functions connect the Netlify platform and workflow.
- Supabase Edge Functions - Edge Functions are server-side TypeScript functions, distributed globally at the edge.
- Astro - Deploy a server-side rendered Astro site to Deno Deploy.

## Blogs/Newsletters

- Craig’s Deno Diary - A blog focussing on Deno tech & lib howtos.
- Deno Blog - The official blog of the Deno Company.
- Deno News - A newsletter of Deno articles, news and cool projects.

## Articles

- Develop with Deno and Visual Studio Code
- First thoughts on Deno, the JavaScript/TypeScript run-time
- Getting started with Deno
- What’s Deno, and how is it different from Node.js?
- Write a small API using Deno
- Deno on Cloud Run
- Learn Deno: Chat app
- From Node to Deno
- Create a simple Note-taking app with Deno
- Building API’s using Deno, Oak and MYSQL
- Create your first News CLI app using Deno
- Continuous Integration with Deno
- The Hidden Superpower of Deno: xeval
- Test coverage in Deno with Codecov and GitHub Actions
- Deno REST API with Oak Tutorial Series 0, 1, 2
- Dissecting Deno
- Getting Started with Deno
- How to deploy a Deno app using Docker

## Presentations

- 10 Things I Regret About Node.js - Ryan Dahl - JSConf EU 2018
  - Slides
- JSDC 2018#A01 - Deno, A New Server-Side Runtime By Ryan Dahl
- Ryan Dahl. Deno, a new way to JavaScript. JS Fest 2019 Spring
  - Slides
- Rafał Pocztarski — From Node.js to Deno - JavaScript/TypeScript runtime built with V8 and Rust [EN]
- Ryan Dahl: A secure runtime for JavaScript and TypeScript | js.la April 2019
  - Slides
- Ryan Dahl: Deno, a new way to JavaScript - HolyJS 2019 Piter
  - Slides
- Rafał Pocztarski - What is Deno? A new runtime for modern JavaScript and TypeScript backends for 2020s - Deno Warsaw
- Michał Sabiniarz - How to contribute to Deno? - Deno Warsaw
- Bartek Iwańczuk - Deno internals, how modern runtime is built - Deno Warsaw
  - Slides
- Ryan Dahl & Kitson Kelly: Deno is a New Way to JavaScript - TSConf 2019
- Bert Belder - Deno - dotJS 2019
- Kitson P. Kelly - Deno, and The Future of JavaScript Runtimes - CityJS Conf 2020
- Matías Insaurralde - Deno: an experimental approach on V8 interoperability [EN subtitles] - NodeConf Argentina 2019
  - Slides

## Resources

### Books

- Modern Web Development with Deno

## Resources in Other Languages

### Chinese

- Deno 并不是下一代 Node.js
- 玩 Deno 遇到问题的解决方案
- 让我们一起来学习别人学不动的 Deno
- Design Mistakes in Node zh-CN
- Node之父ry：Node中的设计错误
- 《Deno进阶开发笔记》
- Deno 手册
- Deno 中文开发者社区
- Node之父 - Deno，一个新的JS运行时

### Hebrew

- Deno intro in Hebrew (slides in English)

### Indonesian

- Berkenalan dengan Deno
- Perkenalan Deno dan Instalasi
- Deno Land Indonesia Telegram group

### Italian

- Deno - L’anagramma di Node

### Japanese

- deno-ja - Deno Japanese User Group.
- Node.js における設計ミス By Ryan Dahl
- mizchi/deno_code_reading.md
- Design Mistakes in Node & Deno #kng5 / deno
- Dive into Deno：プロセス起動からTypeScriptが実行されるまで

### Russian

- Telegram channel
- Telegram chat

### Spanish

- Hola Deno! . 🦕
- Así puedes crear tu primera API REST con Deno
- Primeros pasos con Deno 🦕 El sucesor de NodeJS desarrollado con Rust y TypeScript
- Primer vistazo con deno

### Darija

- A first look at Deno | BlaBlaConf 2021 🇲🇦

### Kurdish (Central)

- A short introduction to Deno