Awesome
<div id="top"></div> <div align="center"> <img src="./assets/zilla-rings@2x.png" height="250"> </div> </br> <div align="center"> <!--[![Build Status][build-status-image]][build-status]--> </div> <h3 align="center"> <a href="https://docs.aklivity.io/zilla/"><b>Docs</b></a> • <a href="https://docs.aklivity.io/zilla/latest/how-tos/quickstart/"><b>Quickstart</b></a> • <a href="https://github.com/aklivity/zilla-demos"><b>Demos</b></a> • <a href="https://www.aklivity.io/blog"><b>Blog</b></a> </h3>π¦ Zilla: a multi-protocol edge & service proxy
Zilla helps develop and manage event-driven applications and services. It is a lightweight yet feature-rich proxy with first-class support for HTTP
, SSE
, gRPC
, MQTT
, and Kafka
protocols.
Use Zilla as a:
- Service sidecar β deployed alongside a service to enforce authentication, validate schemas, gather metrics, and terminate TLS.
- Kafka API gateway β fronting Apache Kafka, enabling web apps, IoT clients, and non-Kafka microservices to directly consume and produce data streams via their own native protocols.
Build real-time applications, integrate services, streamline architectures
Zilla Use Case | Description |
---|---|
Data broadcasting (Kafka fan-out) β | Broadcast real-time updates to end users at web-scale. Power live data feeds such as stock tickers, betting odds, travel updates, and auction prices. |
IoT Kafka ingestion β | Ingest and process IoT data in real-time by turning Kafka into a fully-fledged MQTT broker. |
Async workflows for sync microservices β | Make request-response microservice communication asynchronous by routing it over a pair of Kafka topics. |
Create an event-mesh β | Integrate mesh and event-driven microservices by routing connectivity through Kafka. Make Kafka look like a gRPC/REST server or gRPC client. |
Secure a Server Sent Event (SSE) API β | Secure an SSE API by adding JWT-based Continous Authorization. |
Validate MQTT via AsyncAPI β | Enforce an AsyncAPI schema for messages going into an MQTT broker. |
Much more! | Check out all the Zilla Demos and Zilla Examples. |
Get started in 60 seconds
Zilla is stateless, declaratively configured, and has no external dependencies. The fastest way to get started is to follow the hosted Quickstart.
Install options
Single-node and cluster deployment options are available.
Homebrew
brew tap aklivity/tap
brew install zilla
zilla start -ve -c ./zilla.yaml
Docker
docker pull ghcr.io/aklivity/zilla
docker run ghcr.io/aklivity/zilla:latest start -v
Helm
helm install zilla oci://ghcr.io/aklivity/charts/zilla --namespace zilla --create-namespace --wait \
--values values.yaml \
--set-file zilla\\.yaml=zilla.yaml
Key integrations
- Support for OpenAPI and AsyncAPI specifications for configuration and/or validation enforcement.
- Integrations with external schema registries, such as Apicurio and Karapace, for a variety of data formats, including
JSON
,avro
, andprotobuf
. - Support for authorization via
JWT
, including continous authorization forSSE
. - Integrations with standard observability tools, including Prometheus and OpenTelemetry, for logging and metrics.
<a name="resources"> Resources
π Read the docs
- Zilla Documentation: Guides, tutorials and references to help understand how to use Zilla and configure it for your use case.
- Product Roadmap: Check out our plan for upcoming releases.
- Zilla Examples: A collection of pre-canned Zilla feature demos.
- Eventful Petstore Demo: See Zilla make the OpenAPI/Swagger Petstore service event-driven by mapping it onto Kafka in just a few lines of YAML.
- Taxi Demo: A demo of a taxi-based IoT deployment with Zilla, Kafka, OpenAPIs and AsyncAPIs.
π Check out blog posts
- Bring your own REST APIs for Apache Kafka: Zilla enables application-specific REST APIs. See how it's not just another Kafka-REST proxy.
- Modern Eventing with CQRS, Redpanda and Zilla: Learn about the event-driven nature of CQRS, common challenges while implementing it, and how Zilla solves them with Redpanda.
- End-to-end Streaming Between gRPC Services via Kafka: Learn how to integrate gRPC with Kafka event streaming; securely, reliably and scalably.
- Zilla Hails a Taxi: IoT telemetry at scale? MQTT, Zilla, and Kafka can make it happen.
<a name="support"> β Get support
- Community Slack: Join technical discussions, ask questions, and meet other users!
- GitHub Issues: Report bugs or issues with Zilla.
- Contact Us: Submit non-techinal questions and inquiries.
<a name="community"> π± Community
Looking to contribute to Zilla? Check out the Contributing to Zilla guide. β¨We value all contributions, whether source code, documentation, bug reports, feature requests or feedback!
Many Thanks To Our Contributors!
<a href="https://github.com/aklivity/zilla/graphs/contributors"> <img src="https://contrib.rocks/image?repo=aklivity/zilla" /> </a><a name="license"> License
Zilla is made available under the Aklivity Community License. This is an open source-derived license that gives you the freedom to deploy, modify and run Zilla as you see fit, as long as you are not turning into a standalone commercialized βZilla-as-a-serviceβ offering. Running Zilla in the cloud for your own workloads, production or not, is completely fine.
<!-- Links --> <p align="right">(<a href="#top">πΌ Back to top</a>)</p>