All Projects β†’ WallarooLabs β†’ pony-kafka

WallarooLabs / pony-kafka

Licence: other
🐴 Pure Pony Kafka client

Programming Languages

Pony
23 projects
shell
77523 projects

Projects that are alternatives of or similar to pony-kafka

Apachekafkatutorials
Example Code for Kafka Tutorials @ Learning Journal
Stars: ✭ 155 (+171.93%)
Mutual labels:  kafka-client
Confluent Kafka Go
Confluent's Apache Kafka Golang client
Stars: ✭ 3,047 (+5245.61%)
Mutual labels:  kafka-client
msgpack
🐴 Pure Pony implementation of the MessagePack serialization format. msgpack.org[Pony]
Stars: ✭ 31 (-45.61%)
Mutual labels:  pony-language
Confluent Kafka Dotnet
Confluent's Apache Kafka .NET client
Stars: ✭ 2,110 (+3601.75%)
Mutual labels:  kafka-client
Franz Go
franz-go contains a high performance, pure Go library for interacting with Kafka from 0.8.0 through 2.7.0+. Producing, consuming, transacting, administrating, etc.
Stars: ✭ 199 (+249.12%)
Mutual labels:  kafka-client
Kafka Ui
Open-Source Web GUI for Apache Kafka Management
Stars: ✭ 230 (+303.51%)
Mutual labels:  kafka-client
Flogo
Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps.
Stars: ✭ 1,891 (+3217.54%)
Mutual labels:  kafka-client
pony-inspect
Small Pony library for converting common objects to human-readable strings. 🐴 πŸ”
Stars: ✭ 24 (-57.89%)
Mutual labels:  pony-language
Ksql Udf Deep Learning Mqtt Iot
Deep Learning UDF for KSQL for Streaming Anomaly Detection of MQTT IoT Sensor Data
Stars: ✭ 219 (+284.21%)
Mutual labels:  kafka-client
kiuatan
A parser library for Pony.
Stars: ✭ 15 (-73.68%)
Mutual labels:  pony-language
Phobos
Simplifying Kafka for ruby apps
Stars: ✭ 176 (+208.77%)
Mutual labels:  kafka-client
Confluent Kafka Python
Confluent's Kafka Python Client
Stars: ✭ 2,578 (+4422.81%)
Mutual labels:  kafka-client
http
ponylang HTTP client library 🐴 πŸ•ΈοΈ
Stars: ✭ 38 (-33.33%)
Mutual labels:  pony-language
Java Specialagent
Automatic instrumentation for 3rd-party libraries in Java applications with OpenTracing.
Stars: ✭ 156 (+173.68%)
Mutual labels:  kafka-client
ansible-kafka-admin
Manage your topic's configuration (partitions, replication factor, parameters), ACLs, quotas, and get stats, without any effort with this library. It does not use the Kafka scripts and does not require ssh connection to the remote broker.
Stars: ✭ 109 (+91.23%)
Mutual labels:  kafka-client
Kafkajs
A modern Apache Kafka client for node.js
Stars: ✭ 2,315 (+3961.4%)
Mutual labels:  kafka-client
Collectd
The system statistics collection daemon. Please send Pull Requests here!
Stars: ✭ 2,700 (+4636.84%)
Mutual labels:  kafka-client
pony-websocket
WebSocket server for Ponylang🐴
Stars: ✭ 43 (-24.56%)
Mutual labels:  pony-language
kafkaSaur
Apache Kafka client for Deno
Stars: ✭ 42 (-26.32%)
Mutual labels:  kafka-client
pony-capnp
Cap’n Proto plugin for generating serializable Pony classes. 🐴 - 🎩'n πŸ…ΏοΈ
Stars: ✭ 19 (-66.67%)
Mutual labels:  pony-language

Pony-Kafka

Welcome to Pony Kafka.

This is a pure kafka client written in Pony. The goal is to eventually reach feature parity with the official kafka client.

Why

The main reason this exists is because the alternatives weren't necessarily going to be clean/easy to integrate into Pony and its normal "async everything" manner of working.

Building

You need ponyc to compile pony-kafka. This is currently tested with ponyc version master.

You also need the following (in addition to what is needed for Pony itself):

  • LZ4
  • Snappy
  • Zlib

For Ubuntu 16.04 or newer you can run:

sudo apt-get install libsnappy-dev liblz4-dev zlib1g-dev

For older Ubuntu you can run:

sudo apt-get install libsnappy-dev
cd /tmp
wget -O liblz4-1.7.5.tar.gz https://github.com/lz4/lz4/archive/v1.7.5.tar.gz
tar zxvf liblz4-1.7.5.tar.gz
cd lz4-1.7.5
sudo make install

For OSX you can run:

brew install snappy lz4

You can then build the pony-kafka tests by running:

ponyc pony-kafka

or the example performance application by running:

ponyc examples/performance

Current status

This is currently alpha quality software that still needs more work before it is production ready.

A quick summary of features:

Feature Description Status
Basic Consumer Ability to connect to kafka brokers and consume messages Implemented
Group Consumer Ability to do high level consumer failover like official kafka client Not Implemented
Producer Ability to connect to kafka brokers and produce messages Implemented
Leader Failover Ability to correctly recover from/react to kafka leader failover Partially Implemented
Compression Ability to use LZ4/Snappy/Zlib compression for message sets Implemented
Message Format V2 Ability to use message set format version 2 Not Implemented
Idempotence/Transaction Ability to use idempotence/transactions Not Implemented
Metrics Ability to collect metrics and provide reports of metrics periodically Not Implemented
Security Ability to use SSL/SASL/etc to secure connection to Kafka brokers Not Implemented
Message Interceptors Ability to intercept messages before produce and after consume to be able to modify them or extract metadata from them for monitoring and other purposes Not Implemented
Producer Batching Ability to batch produce requests for efficiency Implemented
Producer Rate Limiting Ability to limit number of outstanding produce requests Implemented
Throttling Ability to tell producers of data to slow down due to network congestion Implemented
Message Delivery Reports Report back to producers once Kafka has confirm message has been successfully stored Implemented
Logging Logging of what is happening/errors Partially Implemented
Error Handling Ability to gracefully handle errors (retry if possible; fail fast if not) Partially Implemented
Documentation Comprehensive documentation for developers using Pony Kafka and developers enhancing Pony Kafka Not Implemented
Testing Comprehensive test suite to confirm everything is working as expected Not Implemented
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].