denoland / deno-docs

Docusaurus site for a unified Deno docs experience
https://docs.deno.com
MIT License
45 stars 78 forks source link

Create api reference category descriptions for web APIs #487

Open donjo opened 3 weeks ago

donjo commented 3 weeks ago

Descriptions for the web API categories that would show up on an index page like this.

Image

thisisjofrank commented 3 weeks ago

FFI Foreign Function Interface. Call functions from shared libraries (e.g., C/C++) directly from Deno. Useful for integrating with existing native code or accessing low-level system functionality. Eg. [Deno.dlopen]

I/O Interfaces for reading, writing, seeking, and managing resources. For handling of data streams, file I/O, and console interactions. Eg. [Deno.stdin], [Deno.inspect]

Permissions Permission system controls access to resources (e.g., file system, network, environment variables). Request permissions explicitly, enhancing security and user trust. Eg. [Deno.permissions]

Jupyter Create interactive notebooks and execute code cells. Useful for data analysis, visualization, and educational purposes. Eg. [Deno.jupyter.$display]

Cloud Tools for managing state, scheduling tasks, and interacting with key-value stores. Eg. [Deno.openKv], [Deno.cron]

FS File System APIs for working with files, directories, and file metadata. Includes functions for reading, writing, and manipulating file paths. Eg. [Deno.readDir], [Deno.readTextFile]

Network A wide range of networking tasks, from low-level connections to high-level server creation. Handle HTTP requests, WebSocket communication, and DNS resolution. Useful for building web servers, clients, and networking tools. Eg. [Deno.connect], [Deno.listen], [Deno.resolveDns]

HTTP Server Handling HTTP requests, serving responses, and managing server behavior. Eg. [Deno.serve], [Deno.serveHttp]

Sub Process Spawn and manage child processes, execute commands, and collect output. Useful for executing external programs from Deno. Eg. [Deno.Command]

Errors Error types and utilities for handling exceptions and custom error scenarios. Helps improve error handling and debugging. Eg. [Deno.errors.NotFound]

Runtime Env System-related functionality, process management, and observability. Eg. [Deno.mainModule], [Deno.cwd], [Deno.exit]

Testing & Benchmarking Robust testing and benchmarking capabilities to ensure code quality and performance. Eg. [Deno.test], [Deno.bench]

lucacasonato commented 3 weeks ago

I/O Input/Output. Reading and writing files, working with streams, and handling standard input/output.

Reading and writing files is in File system, no?

lucacasonato commented 3 weeks ago

Network A wide range of networking tasks, from low-level connections to high-level server creation. Handle HTTP requests, WebSocket communication, and DNS resolution. Useful for building web servers, clients, and networking tools.

HTTP Server Handling HTTP requests, serving responses, and managing server behavior.

Not clear how these are different. If Network contains "Handle HTTP requests", then what does Http Server contain?

lucacasonato commented 3 weeks ago

Runtime Env System-related functionality, process management, and observability.

Should explicitly mention environment variables, and disambiguate "process management" with the description of "Sub Processes"

thisisjofrank commented 3 weeks ago

Network A wide range of networking tasks, from low-level connections to high-level server creation. Handle HTTP requests, WebSocket communication, and DNS resolution. Useful for building web servers, clients, and networking tools. HTTP Server Handling HTTP requests, serving responses, and managing server behavior.

Not clear how these are different. If Network contains "Handle HTTP requests", then what does Http Server contain?

yeah, when i was writing this i was struggling to remember why we separated these categories...

thisisjofrank commented 3 weeks ago

I/O Input/Output. Reading and writing files, working with streams, and handling standard input/output.

Reading and writing files is in File system, no?

have updated

thisisjofrank commented 1 week ago

Web APIs A set of essential interfaces and functions to interact with the browser environment. Eg handling user interactions, getting browser and device information, scheduling and canceling periodic or one-time tasks. Eg. [prompt], [console]

Canvas APIs Create, transform, and display images and graphics within the HTML element. Eg. [createImageBitmap]

URL Manipulate URLs, extract data from URLs and manage query parameters. Eg. [URL]

Events Handle events and interactions. Listen for and respond to various events, including custom events, errors, progress, and promise rejections. Eg. [addEventListener]

Fetch APIs HTTP client for fetching data across a network. Retrieve resources from servers, handle responses, and manage network requests. Eg. [fetch], [Headers], [Request], [Response]

Cache APIs Tools for caching and managing data. Store and retrieve data from the cache, manage cache storage limits, and handle cache-related events. Eg. [caches]

Messaging APIs Facilitate communication between different parts of an application, allowing data exchange and coordination. Eg. [BroadcastChannel], [MessageChannel]

Encoding APIs Handle character encoding, decoding, and binary data conversion. Eg. [TextEncoder], [TextDecoder]

Intl Tools for internationalization and localization. Create language-aware applications, handle date and time formatting, and adapt content for different locales. Eg. [Intl]

Performance Measure, analyze, and optimize application performance. Eg. [Performance]

Streams APIs Manage data streams, queuing strategies, and transformations. Handle data in chunks, process large datasets, and optimize memory usage. Eg. [ReadableStream], [WritableStream], [TransformStream], [CompressionStream], [DecompressionStream]

WebAssembly Efficiently execute computationally intensive tasks. WASM module compilation, instantiation, memory management, and interaction with imports and exports. Eg. [WebAssembly.Instance], [WebAssembly.Module], [WebAssembly.instantiate]

Web File APIs File and data manipulation tools. Handle files, read data and work with binary content. Eg. [File], [Blob]

WebSockets Enable real-time communication between clients and servers using WebSockets. Tools to create interactive and dynamic applications. Eg. [WebSocket]

Web Storage APIs Store data locally within the browser. Manage session storage and local storage. Eg. [localStorage], [sessionStorage]

Web Workers Run script operations in background threads. Manage worker threads, communicate with workers, and handle data transfer between workers and the main thread. Eg. [Worker]

Web Crypo APIs Cryptographic functionality for secure communication, data protection, and key management. Generate secure random numbers, encrypt and decrypt data, and manage cryptographic keys. Eg. [crypto]

Temporal APIs Date and time handling. Includes long-lived Workflows, calendar systems, time zones, and precise duration calculations. Eg. [Temporal.PlainDate], [Temporal.Now]

WebGPU APIs GPU programming and rendering. Efficiently use a device’s graphics processing unit (GPU) for high-performance computations and complex image rendering. Eg. [GPUDevice]

ry commented 1 week ago

Fetch APIs Tools to fetch data. Retrieve resources from servers, handle responses, and manage network requests.

HTTP client

Messaging APIs Facilitate communication between different parts of an application, allowing data exchange and coordination.

Not sure what this would include