{"id":13565281,"url":"https://github.com/aklivity/zilla","last_synced_at":"2025-04-14T20:55:22.081Z","repository":{"id":37027749,"uuid":"436039945","full_name":"aklivity/zilla","owner":"aklivity","description":"🦎 A multi-protocol edge \u0026 service proxy. Seamlessly interface web apps, IoT clients, \u0026 microservices to Apache Kafka® via declaratively defined, stateless APIs.","archived":false,"fork":false,"pushed_at":"2025-04-10T15:05:31.000Z","size":43626,"stargazers_count":578,"open_issues_count":155,"forks_count":57,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-04-10T16:44:32.776Z","etag":null,"topics":["api-gateway","asyncapi","event-driven-architecture","event-stream-proxy","event-streaming","grpc","iot","kafka","kafka-proxy","mqtt","openapi","proxy","rest","server-sent-events","streaming-api"],"latest_commit_sha":null,"homepage":"https://docs.aklivity.io/zilla","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aklivity.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-07T22:10:04.000Z","updated_at":"2025-04-10T15:05:35.000Z","dependencies_parsed_at":"2024-11-06T00:25:53.056Z","dependency_job_id":"a9c22688-02d1-4b18-82d6-7995889e2e4b","html_url":"https://github.com/aklivity/zilla","commit_stats":null,"previous_names":[],"tags_count":114,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aklivity%2Fzilla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aklivity%2Fzilla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aklivity%2Fzilla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aklivity%2Fzilla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aklivity","download_url":"https://codeload.github.com/aklivity/zilla/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248961128,"owners_count":21189991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","asyncapi","event-driven-architecture","event-stream-proxy","event-streaming","grpc","iot","kafka","kafka-proxy","mqtt","openapi","proxy","rest","server-sent-events","streaming-api"],"created_at":"2024-08-01T13:01:43.691Z","updated_at":"2025-04-14T20:55:22.051Z","avatar_url":"https://github.com/aklivity.png","language":"Java","funding_links":[],"categories":["Libraries","Tools","Table of Contents","Data Ingestion","Java","Middleware","进程间通信","iot","Stream Processing"],"sub_categories":["REST Proxy","Other","Streaming Application","Software","Android Things"],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./assets/zilla-rings@2x.png\" height=\"250\"\u003e\n\u003c/div\u003e\n\n\u003c/br\u003e\n\n\u003cdiv align=\"center\"\u003e \n\n  \u003c!--[![Build Status][build-status-image]][build-status]--\u003e\n  [![Latest Release][release-latest-image]][release-latest]\n  [![Slack Community][community-image]][community-join]\n  [![Artifact HUB][artifact-hub-shield]][artifact-hub]\n  \n\u003c/div\u003e\n\n\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"https://docs.aklivity.io/zilla/\"\u003e\u003cb\u003eDocs\u003c/b\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://docs.aklivity.io/zilla/latest/getting-started/quickstart/\"\u003e\u003cb\u003eQuickstart\u003c/b\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/aklivity/zilla-demos\"\u003e\u003cb\u003eDemos\u003c/b\u003e\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://www.aklivity.io/blog\"\u003e\u003cb\u003eBlog\u003c/b\u003e\u003c/a\u003e  \n\u003c/h3\u003e\n\n# 🦎 Zilla: a multi-protocol edge \u0026 service proxy\n\n**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. \n\nUse **Zilla** as a:\n- **Service sidecar** — deployed alongside a service to enforce authentication, validate schemas, gather metrics, and terminate TLS.\n- **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.\n\n## Build real-time applications, integrate services, streamline architectures\n\n| Zilla Use Case | Description |\n| -------- | ------- |\n| [Data broadcasting (Kafka fan-out) →](examples/sse.kafka.fanout) | 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. |\n| [IoT Kafka ingestion →](https://docs.aklivity.io/zilla/latest/concepts/proxy/mqtt/kafka) | Ingest and process IoT data in real-time by turning Kafka into a fully-fledged MQTT broker. |\n| [Async workflows for sync microservices →](examples/http.kafka.async) | Make request-response microservice communication asynchronous by routing it over a pair of Kafka topics. |\n| [Create an event-mesh →](https://www.aklivity.io/post/end-to-end-streaming-between-grpc-services-via-kafka) | Integrate mesh and event-driven microservices by routing connectivity through Kafka. Make Kafka look like a gRPC/REST server or gRPC client. |\n| [Secure a Server Sent Event (SSE) API →](examples/sse.proxy.jwt) | Secure an SSE API by adding JWT-based Continous Authorization. |\n| [Validate MQTT via AsyncAPI →](examples/asyncapi.mqtt.kafka.proxy) | Enforce an AsyncAPI schema for messages going into an MQTT broker. |\n| **Much more!** | Check out all the [Zilla Demos](https://github.com/aklivity/zilla-demos) and [Zilla Examples](examples). |\n\n## Get started in 60 seconds\n\n**Zilla** is stateless, declaratively configured, and has no external dependencies. The fastest way to get started is to follow the [**Quickstart**](https://docs.aklivity.io/zilla/latest/getting-started/quickstart).\n\n## Install options\n\nSingle-node and cluster deployment options are available.\n \n**Homebrew**\n```\nbrew tap aklivity/tap \nbrew install zilla\n\nzilla start -ve -c ./zilla.yaml\n```\n\n**Docker**\n\n```\ndocker pull ghcr.io/aklivity/zilla\n\ndocker run ghcr.io/aklivity/zilla:latest start -v\n```\n\n**Helm**\n\n```\nhelm install zilla oci://ghcr.io/aklivity/charts/zilla --namespace zilla --create-namespace --wait \\\n--values values.yaml \\\n--set-file zilla\\\\.yaml=zilla.yaml\n```\n\n## Key integrations\n\n- [x] Support for **OpenAPI** and **AsyncAPI** specifications for configuration and/or validation enforcement.\n- [x] Integrations with external schema registries, such as **Apicurio** and **Karapace**, for a variety of data formats, including `JSON`, `avro`, and `protobuf`.\n- [x] Support for authorization via `JWT`, including [continous authorization](https://www.aklivity.io/post/a-primer-on-server-sent-events-sse#:~:text=SSE%20is%20with-,Zilla%20Continuous%20Stream%20Authorization,-.) for `SSE`.\n- [x] Integrations with standard observability tools, including **Prometheus** and **OpenTelemetry**, for logging and metrics.\n\n## \u003ca name=\"resources\"\u003e Resources\n\n### 📚 Read the docs\n\n- **[Zilla Documentation](https://docs.aklivity.io/zilla/latest):** Guides, tutorials and references to help understand how to use Zilla and configure it for your use case.\n- **[Product Roadmap][zilla-roadmap]:** Check out our plan for upcoming releases. \n- **[Zilla Examples](examples)**: A collection of pre-canned Zilla feature demos.\n- **[Eventful Petstore Demo](https://github.com/aklivity/zilla-demos/tree/main/petstore):** See Zilla make the OpenAPI/Swagger Petstore service event-driven by mapping it onto Kafka in just a few lines of YAML.\n- **[Taxi Demo](https://github.com/aklivity/zilla-demos/tree/main/petstore):** A demo of a taxi-based IoT deployment with Zilla, Kafka, OpenAPIs and AsyncAPIs.\n\n### 📝 Check out blog posts\n\n- **[The Why \u0026 How of Centralized Data Governance in Zilla Across Protocols](https://www.aklivity.io/post/the-why-how-of-centralized-data-governance-in-zilla-across-protocols):** Data Governance in Zilla in context of different protocols like HTTP, MQTT \u0026 of course, Kafka.\n- **[Bring your own REST APIs for Apache Kafka](https://www.aklivity.io/post/bring-your-own-rest-apis-for-apache-kafka):** Zilla enables application-specific REST APIs. See how it's not just another Kafka-REST proxy.\n- **[Modern Eventing with CQRS, Redpanda and Zilla](https://www.aklivity.io/post/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.\n- **[End-to-end Streaming Between gRPC Services via Kafka](https://www.aklivity.io/post/end-to-end-streaming-between-grpc-services-via-kafka):** Learn how to integrate gRPC with Kafka event streaming; securely, reliably and scalably.\n- **[Zilla Hails a Taxi](https://www.aklivity.io/post/zilla-hails-a-taxi):** IoT telemetry at scale? MQTT, Zilla, and Kafka can make it happen.\n\n### \u003ca name=\"support\"\u003e ❓ Get support\n\n- **[Community Slack](https://www.aklivity.io/slack):** Join technical discussions, ask questions, and meet other users!\n- **[GitHub Issues](https://github.com/aklivity/zilla/issues):** Report bugs or issues with Zilla.\n- **[Contact Us](https://www.aklivity.io/contact):** Submit non-techinal questions and inquiries.\n\n## \u003ca name=\"community\"\u003e 🌱 Community\n\nLooking to contribute to Zilla? Check out the [Contributing to Zilla](./.github/CONTRIBUTING.md) guide.\n✨We value all contributions, whether source code, documentation, bug reports, feature requests or feedback!\n\n### Many Thanks To Our Contributors!\n\n\u003ca href=\"https://github.com/aklivity/zilla/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=aklivity/zilla\" /\u003e\n\u003c/a\u003e\n\n## \u003ca name=\"license\"\u003e License\n\nZilla is made available under the [Aklivity Community License](./LICENSE-AklivityCommunity). 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.\n\n\n\u003c!-- Links --\u003e\n[build-status-image]: https://github.com/aklivity/zilla/workflows/build/badge.svg\n[build-status]: https://github.com/aklivity/zilla/actions\n[community-image]: https://img.shields.io/badge/slack-@aklivitycommunity-blue.svg?logo=slack\n[community-join]: https://www.aklivity.io/slack\n[artifact-hub-shield]: https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/zilla\n[artifact-hub]: https://artifacthub.io/packages/helm/zilla/zilla\n[release-latest-image]: https://img.shields.io/github/v/tag/aklivity/zilla?label=release\n[release-latest]: https://github.com/aklivity/zilla/pkgs/container/zilla\n[zilla-roadmap]: https://github.com/orgs/aklivity/projects/4/views/1\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#top\"\u003e🔼 Back to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faklivity%2Fzilla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faklivity%2Fzilla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faklivity%2Fzilla/lists"}