Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aklivity/zilla
🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs.
https://github.com/aklivity/zilla
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
Last synced: 6 days ago
JSON representation
🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs.
- Host: GitHub
- URL: https://github.com/aklivity/zilla
- Owner: aklivity
- License: other
- Created: 2021-12-07T22:10:04.000Z (about 3 years ago)
- Default Branch: develop
- Last Pushed: 2024-10-29T09:15:52.000Z (about 1 month ago)
- Last Synced: 2024-10-29T11:06:29.634Z (about 1 month ago)
- 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
- Language: Java
- Homepage: https://docs.aklivity.io/zilla
- Size: 27.6 MB
- Stars: 542
- Watchers: 10
- Forks: 50
- Open Issues: 140
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-ccamel - aklivity/zilla - 🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs. (Java)
- awesome-repositories - aklivity/zilla - 🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs. (Java)
- awesome-kafka - Zilla - An API gateway built for event-driven architectures and streaming that supports standard protocols such as HTTP, SSE, gRPC, MQTT and the native Kafka protocol. (Libraries / REST Proxy)
- awesome-grpc - Zilla - An API gateway built for event-driven architectures and streaming that supports standard protocols such as HTTP, SSE, gRPC, MQTT and the native Kafka protocol. (Tools / Other)
- awesome-data-engineering - Zilla - - An API gateway built for event-driven architectures and streaming that supports standard protocols such as HTTP, SSE, gRPC, MQTT, and the native Kafka protocol. (Stream Processing)
- awesome-streaming - Zilla - Cross-platform, API gateway built for event-driven architectures and streaming that supports standard protocols such as HTTP, SSE, gRPC, MQTT and the native Kafka protocol. (Table of Contents / Streaming Application)
README
[![Latest Release][release-latest-image]][release-latest]
[![Slack Community][community-image]][community-join]
[![Artifact HUB][artifact-hub-shield]][artifact-hub]
Docs •
Quickstart •
Demos •
Blog# 🦎 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) →](https://github.com/aklivity/zilla-examples/tree/main/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. |
| [IoT Kafka ingestion →](https://vordimous.github.io/zilla-docs/next/how-tos/mqtt/mqtt.kafka.broker.html) | Ingest and process IoT data in real-time by turning Kafka into a fully-fledged MQTT broker. |
| [Async workflows for sync microservices →](https://github.com/aklivity/zilla-examples/tree/main/http.kafka.async) | Make request-response microservice communication asynchronous by routing it over a pair of Kafka topics. |
| [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. |
| [Secure a Server Sent Event (SSE) API →](https://github.com/aklivity/zilla-examples/tree/main/sse.proxy.jwt) | Secure an SSE API by adding JWT-based Continous Authorization. |
| [Validate MQTT via AsyncAPI →](https://github.com/aklivity/zilla-examples/tree/main/asyncapi.mqtt.kafka.proxy) | Enforce an AsyncAPI schema for messages going into an MQTT broker. |
| **Much more!** | Check out all the [Zilla Demos](https://github.com/aklivity/zilla-demos) and [Zilla Examples](https://github.com/aklivity/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**](https://docs.aklivity.io/zilla/latest/how-tos/quickstart/).
## Install options
Single-node and cluster deployment options are available.
**Homebrew**
```
brew tap aklivity/tap
brew install zillazilla start -ve -c ./zilla.yaml
```**Docker**
```
docker pull ghcr.io/aklivity/zilladocker 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
- [x] Support for **OpenAPI** and **AsyncAPI** specifications for configuration and/or validation enforcement.
- [x] Integrations with external schema registries, such as **Apicurio** and **Karapace**, for a variety of data formats, including `JSON`, `avro`, and `protobuf`.
- [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`.
- [x] Integrations with standard observability tools, including **Prometheus** and **OpenTelemetry**, for logging and metrics.## Resources
### 📚 Read the docs
- **[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.
- **[Product Roadmap][zilla-roadmap]:** Check out our plan for upcoming releases.
- **[Zilla Examples](https://github.com/aklivity/zilla-examples)**: A collection of pre-canned Zilla feature demos.
- **[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.
- **[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.### 📝 Check out blog posts
- **[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.
- **[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.
- **[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.
- **[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.### ❓ Get support
- **[Community Slack](https://www.aklivity.io/slack):** Join technical discussions, ask questions, and meet other users!
- **[GitHub Issues](https://github.com/aklivity/zilla/issues):** Report bugs or issues with Zilla.
- **[Contact Us](https://www.aklivity.io/contact):** Submit non-techinal questions and inquiries.## 🌱 Community
Looking to contribute to Zilla? Check out the [Contributing to Zilla](./.github/CONTRIBUTING.md) guide.
✨We value all contributions, whether source code, documentation, bug reports, feature requests or feedback!### Many Thanks To Our Contributors!
## License
Zilla 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.
[build-status-image]: https://github.com/aklivity/zilla/workflows/build/badge.svg
[build-status]: https://github.com/aklivity/zilla/actions
[community-image]: https://img.shields.io/badge/[email protected]?logo=slack
[community-join]: https://www.aklivity.io/slack
[artifact-hub-shield]: https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/zilla
[artifact-hub]: https://artifacthub.io/packages/helm/zilla/zilla
[release-latest-image]: https://img.shields.io/github/v/tag/aklivity/zilla?label=release
[release-latest]: https://github.com/aklivity/zilla/pkgs/container/zilla
[zilla-roadmap]: https://github.com/orgs/aklivity/projects/4/views/1