This repository has been archived by the owner on Sep 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 237
docs(embedding_deno): added an overview of all deno crates and what they do. #471
Open
NinekoTheCat
wants to merge
1
commit into
denoland:main
Choose a base branch
from
NinekoTheCat:manual-embeddable-expansion
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
# Crates Overview | ||
|
||
This is an overview of `Deno`'s crates and what functionalities they provide. | ||
|
||
## Core | ||
|
||
### [`deno`](https://crates.io/crates/deno) | ||
|
||
The real deal. | ||
|
||
has All the user facing features of deno including typescript compilation and | ||
dependancy managment in a binary package. | ||
|
||
### [`deno_runtime`](https://crates.io/crates/deno_runtime) | ||
|
||
The whole deno runtime packaged into an easy to use abstraction with all | ||
features intact aside from certain ones like for example **Dependancy | ||
managment**. | ||
|
||
### [`deno_core`](https://crates.io/crates/deno_core) | ||
|
||
Provides an easy abstraction over V8 to run Javascript code and to register | ||
additional rust based deno operators. | ||
|
||
It does not implement anything either than that and you have to register | ||
external deno operators to do anything useful. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
what are operators? |
||
|
||
Note: _does not provide typescript compilation_. | ||
|
||
## Features | ||
|
||
### [`deno_ffi`](https://crates.io/crates/deno_ffi) | ||
|
||
**you are playing with fire.** | ||
|
||
Implements FFI operators for deno to be able to work with external low level | ||
libraries within Javascript. | ||
|
||
### [`deno_typescript`](https://crates.io/crates/deno_typescript) | ||
|
||
Implements all of deno's typescript compilation and an operator for fetching | ||
assets. | ||
|
||
### [`deno_node`](https://crates.io/crates/deno_node). | ||
|
||
Implements NodeJS compatibility operators, not needed if code is pure Deno. | ||
|
||
### [`deno_flash`](https://crates.io/crates/deno_flash) | ||
|
||
Deno's fast HTTP server for use in Javascript code. | ||
|
||
## Utilities | ||
|
||
### [`deno_ops`](https://crates.io/crates/deno_ops) | ||
|
||
Has an easy to use macro for creating deno operators and is the defacto | ||
'standard' for implementing features usable from Javascript into `Deno`. | ||
|
||
Also has some automatic optimisations for certain scenarios. | ||
|
||
### [`deno_tls`](https://crates.io/crates/deno_tls) | ||
|
||
Utilities for doing TLS for other `deno` operator crates. | ||
|
||
Does nothing on its own. | ||
|
||
Required for: | ||
|
||
- `deno_fetch` | ||
- `deno_websocket` | ||
- `deno_net` | ||
- `deno_runtime` | ||
|
||
### [`deno_ast`](https://crates.io/crates/deno_ast) | ||
|
||
Implements deno's source code parsing and AST generation. | ||
|
||
## CLI | ||
|
||
### [`deno_doc`](https://crates.io/crates/deno_doc) | ||
|
||
Implements Javascript and Typescript documentation generation for Deno's `doc` | ||
command. | ||
|
||
### [`deno_emit`](https://crates.io/crates/deno_emit) | ||
|
||
Implements Module Transpilation and Event emmiting for deno's dependancy | ||
managment. | ||
|
||
### [`deno_lint`](https://crates.io/crates/deno_lint) | ||
|
||
Implement's Deno's Automatic Linting for the `lint` command. | ||
|
||
### [`deno_task_shell`](https://crates.io/crates/deno_task_shell) | ||
|
||
Implement's Deno's Cross-Platform Shell Scripting Execution Enviorment for | ||
tasks. | ||
|
||
## Browser APIs | ||
|
||
### [`deno_web`](https://crates.io/crates/deno_web) | ||
|
||
> Collection of Web APIs | ||
|
||
Implements operators for | ||
|
||
- Events | ||
- Text Encoding | ||
- Text Decoding | ||
- [File Standard](https://w3c.github.io/FileAPI/) | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. streams, compression streams, performance, abortsignal, timers, messagechannel, base64 |
||
### [`deno_webidl`](https://crates.io/crates/deno_webidl) | ||
|
||
Implements the [Web IDL Standard](https://webidl.spec.whatwg.org/) | ||
|
||
### [`deno_url`](https://crates.io/crates/deno_url) | ||
|
||
Implements operators for | ||
|
||
- [URL Standard](https://url.spec.whatwg.org/) | ||
- [URLPattern Standard](https://wicg.github.io/urlpattern/) | ||
|
||
### [`deno_fetch`](https://crates.io/crates/deno_fetch) | ||
|
||
Implements the `fetch` operator according to the | ||
[Fetch Standard](https://fetch.spec.whatwg.org/) | ||
|
||
### [`deno_crypto`](https://crates.io/crates/deno_crypto) | ||
|
||
Implements operators cryptography according to the | ||
[Web Cryptography API Specification](https://www.w3.org/TR/WebCryptoAPI/) | ||
|
||
### [`deno_console`](https://crates.io/crates/deno_console) | ||
|
||
Implements operators for the | ||
[Console Specification](https://console.spec.whatwg.org/) | ||
|
||
### [`deno_websocket`](https://crates.io/crates/deno_websocket) | ||
|
||
Implements operators for using and creating websockets according to the | ||
[Websockets Standard](https://html.spec.whatwg.org/multipage/web-sockets.html) | ||
|
||
### [`deno_http`](https://crates.io/crates/deno_http) | ||
|
||
Implements Server Side HTTP based on the primitives from the | ||
[Fetch Specification](https://fetch.spec.whatwg.org/) | ||
|
||
### [`deno_net`](https://crates.io/crates/deno_net) | ||
|
||
Implements networking operators and is required for | ||
|
||
- `deno_web` | ||
- `deno_fetch` | ||
|
||
### [`deno_webgpu`](https://crates.io/crates/deno_webgpu) | ||
|
||
**This crate is implementing an unstable proposal and such is subject to | ||
constant breaking changes.** | ||
|
||
Implements operators for the | ||
[WebGPU Specification](https://gpuweb.github.io/gpuweb/) | ||
|
||
### [`deno_webstorage`](https://crates.io/crates/deno_webstorage) | ||
|
||
implements operators for the | ||
[WebStorage Specification](https://html.spec.whatwg.org/multipage/webstorage.html) | ||
|
||
### [`deno_timers`](https://crates.io/crates/deno_timers) | ||
|
||
Implements timer operators according to the | ||
[Timers Specification](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers) | ||
|
||
### [`deno_cache`](https://crates.io/crates/deno_cache) | ||
|
||
**does not support query options** | ||
|
||
Implements operators for the | ||
[Cache Interface Specification](https://w3c.github.io/ServiceWorker/#cache-interface) | ||
|
||
### [`deno_bench_util`](https://crates.io/crates/deno_bench_util) | ||
|
||
Implements utilites for benchmarking deno operators, useful for making sure your | ||
custom operators are **Blazingly Fast**. | ||
|
||
### [`deno_napi`](https://crates.io/crates/deno_napi) | ||
|
||
[Node Addons API](https://nodejs.org/api/n-api.html#node-api) implementation for | ||
deno. | ||
|
||
### [`deno_file`](https://crates.io/crates/deno_file) | ||
|
||
Implements operators for the | ||
[File API Specification](https://w3c.github.io/FileAPI/) | ||
|
||
### [`deno_broadcast_channel`](https://crates.io/crates/deno_broadcast_channel) | ||
|
||
Implements operators for the | ||
[Web Messaging Standard](https://html.spec.whatwg.org/multipage/web-messaging.html) | ||
|
||
_aka BroadcastChannel_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it should be mentioned that this isnt published as a library anymore