/edge-runtime

A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services.

Primary LanguageRustMIT LicenseMIT

Supabase Edge Runtime

A web server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services. Edge Runtime is built and maintained by the Supabase team. For more details, read the intro blog post.

You can use it to:

  • Locally test and self-host Supabase's Edge Functions (or any Deno Function)
  • As a programmable HTTP Proxy: You can intercept / route HTTP requests

WARNING: Beta Software. There will be breaking changes to APIs / Configuration Options

Architecture

Sequence diagram of Edge Runtime request flow

The edge runtime can be divided into two runtimes with different purposes.

  • Main runtime:
    • An instance for the main runtime is responsible for proxying the transactions to the user runtime.
    • The main runtime is meant to be an entry point before running user functions, where you can authentication, etc. before calling the user function.
    • Has no user-facing limits
    • Has access to all environment variables.
  • User runtime:
    • An instance for the user runtime is responsible for executing users' code.
    • Limits are required to be set such as: Memory and Timeouts.
    • Has access to environment variables explictly allowed by the main runtime.

Developers

To learn how to build / test Edge Runtime, visit DEVELOPERS.md

Contributions

We welcome contributions to Supabase Edge Runtime!

To get started either open an issue on GitHub or drop us a message on Discord

Edge Runtime follows Supabase's Code of Conduct.