Deno Deploy Beta 3
Deno Deploy is a multi-tenant JavaScript engine running in 28 regions across the world. The service deeply integrates cloud infrastructure with the V8 virtual machine, allowing users to quickly script distributed HTTPS servers. This novel “serverless” system is designed from the ground up for modern JavaScript programming.
Today we are releasing Deploy Beta 3. This is the third in a series of beta releases that will be made over the coming months. Each release will add features and refine the programming model. The releases will culminate in a General Availability announcement that we estimate will happen in Q4 2021.
Over the past year, we have been quietly designing this hosted service to supplement workflows with the open source Deno CLI. Deploy does not run on AWS Lambda nor does it use Cloudflare Workers; this is a new system with a unique design. We encourage people to look past the rough initial UI and explore this new JavaScript runtime.
Deploy’s goal is to be the best place to host modern server-side JavaScript.
New APIs
Outbound TCP and TLS connections
It’s now possible to make raw outbound TCP and TLS connections using
Deno.connect
and
Deno.connectTls
. This
opens the possibility of connecting to databases with non-HTTP interfaces, like
Postgres, MySQL, and MongoDB.
const conn = await Deno.connect({
hostname: "deno.land",
port: 80,
transport: "tcp",
});
await conn.write(new TextEncoder().encode("GET / HTTP/1.0\r\n\r\n"));
DNS Resolution
Beta 3 supports DNS resolution via the
Deno.resolveDns
API.
const ips = await Deno.resolveDns("deno.land", "A");
URLPattern
The URLPattern
API has just become available in Chrome 95 on October 19th and
it is also now available in Deno Deploy Beta 3. This API is particularly
relevant to server-side programs as it provides a convient DSL for HTTP routing
logic.
Try it out in a Deno Deploy Playground:
Documentation and examples are available on MDN: https://developer.mozilla.org/en-US/docs/Web/API/URLPattern.
Playgrounds
Deploy already supports hosting code directly from Github. The playground feature allows one-off ideas to be quickly tested and deployed. Even though playgrounds are small and easy to deploy, they boast the full power of Deno Deploy: deployments in playgrounds are just as scalable and globally distributed as all other Deno Deploy projects.
The Deploy Playground editor is intentionally simple. Larger programs should be managed in Github. In fact, there’s an option in the settings page to export a playground to a Github repository when you feel it has outgrown the simple online editor.
Playgrounds are private by default, but can be made public to enable sharing. Here are a couple of playgrounds to peruse:
- https://dash.deno.com/playground/nanossr
- https://dash.deno.com/playground/example-oak
- https://dash.deno.com/playground/example-router
- https://dash.deno.com/playground/example-sift
Public playgrounds can also be embedded into HTML pages (like blog posts or
documentation sites) through the use of an <iframe>
. Visit
https://embed.deno.com/ to get embed snippets for your playgrounds. We are
already making use of this in the Deno Deploy docs, where many code snippets can
now be directly edited and deployed to your account.
Organizations
Until now projects could be owned by just a single user. In Beta 3, we’ve added organizations, which allow shared access across a team.
Documentation is available at https://deno.com/deploy/docs/organizations/.
What’s Next
We will continue to improve Deploy in upcoming beta releases, culminating in a GA release that is expected in Q4 2021. Expect the next release to address long-requested cache features, CLI interoperability, and a better getting-started flow.