Skip to content

Provide extensions standard library #452

@cd-work

Description

@cd-work

Overview

By default, deno_core only provides an embedded JavaScript runtime. This allows executing JavaScript code but provides no other utility functions besides the bare minimum. To ensure people can use this runtime to write their applications, the deno CLI also provides various interfaces like the filesystem and network, similar to what nodejs/browser runtimes provide.

To make sure our extensions can do meaningful work, we should provide some of this functionality too. Most of which can likely just be used from the deno CLI project directly, so no extra development effort is necessary.

Integration with the deno runtime can be seen in the CLI here. Most of the different extensions are provided as separate crates that can be included on demand.

Additionally the Deno standard library also provides bindings to this functionality, allowing for easy use without having to go through Deno abstractions. Providing this by default might be a nice thing to have, though loading these modules over the network is a possibility as long as the deno extensions necessary were added to the runtime.

Much of this functionality is not immediately necessary for our extensions, so the best approach is likely to incrementally add what is necessary, starting with basic functionality like filesystem/client networking.

Acceptance Criteria

  • Load runtime extensions for at least file read/write, HTTP requests and console I/O
  • Write examples/tests using these APIs with web/local deno STD
  • Ensure binary size increase is within reasonable bounds

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestextensionsPhylum CLI extensionsmedium priorityShould be handled as soon as possible

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions