Foundations
Cover the most important concepts to get started quickly.
The following concepts will get you up and running with Edgee, before you start coding.
Reverse proxy
Edgee acts as a reverse proxy in front of a website, intercepting HTTP requests and running business logic on top of edge networks and CDNs such as Fastly and Cloudflare.
The Edgee proxy interacts with WebAssembly components to implement features such as data collection for analytics, warehousing, and conversions.
WebAssembly and language support
WebAssembly (Wasm) allows developers to implement a component in programming languages such as Rust or JavaScript and compile it to a binary format. Each component runs in a sandboxed environment with no access to network or filesystem and implements a specific interface used by the Edgee proxy to invoke a component’s business logic.
You use WebAssembly as compile target with many different languages and the resulting binary file is language-agnostic and cross-platform. Today, Edgee supports and provides tooling for Rust, Go, Python, JavaScript, TypeScript, C, and C#. The Edgee CLI makes local development consistent across languages, but it’s worth noting that compiled languages such as Rust, Go, and C result in pretty small and efficient Wasm files (within hundreds of KBs), while interpreted languages such as Python, JavaScript, and TypeScript result in much heavier Wasm files (20MB+).
Component types and WIT
Today, Edgee supports only one component type: Data Collection. That includes components for web analytics such as Google Analytics or Amplitude, for attribution/conversion such as Meta Conversions API or LinkedIn Conversions API, and for data streaming and warehousing destinations such as Amazon S3, Amazon Kinesis, or Amazon Data Firehose.
We’re quickly expanding to new component types such as Consent Mapping to integrate with CMPs (Consent Management Platforms) and A/B Testing to integrate with A/B testing frameworks and services at the edge.
In Wasm, interfaces are defined with WIT (Wasm Interface Type),
a definition language to define types and worlds. You can find Edgee’s WIT files on GitHub.
The convention is to store them under a wit/
folder and define your WIT dependencies in a wit/deps.toml
file.
When a new WIT version is available, you can use wit-deps to keep all the WIT dependencies up-to-date.
Depending on the programming language, you might need to re-generate the WIT bindings as well.
Note: since v0.9.0
, the Edgee CLI takes care of managing and updating WIT dependencies automatically for you, under
a hidden .edgee/wit
folder. You shouldn’t need to worry about WIT dependencies at all.
When a new WIT release is available, you only need to update the wit-version
in your component’s manifest.
Edgee CLI and APIs
The Edgee CLI lets you create and build Wasm components locally with commands such as
edgee components new
and edgee components build
.
When the component is ready, it lets you push it to the Edgee Component Registry as a public or private component
under your organization’s account via edgee components push
. Under the hood, the CLI interacts with the
Edgee API and its goal is to simplify the local development experience across all supported languages.
Next steps
Now you are 100% ready to get started with the Edgee CLI!
Go ahead and have fun with our step-by-step Developer Guide.
Was this page helpful?