Deno logoDeno

Deno Deploy Beta 3

Ryan Dahl, Luca Casonato


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:

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.