Git Product home page Git Product logo

kafka-rust's Introduction

Kafka Rust Client

Build Status

Documentation

Installation

This crate works with Cargo and is on crates.io. The API is currently under heavy movement although we do follow semantic versioning (but expect the version number to grow quickly.)

[dependencies]
kafka = "0.5"

To build kafka-rust you'll need libsnappy-dev on your local machine. If that library is not installed in the usual path, you can export the LD_LIBRARY_PATH and LD_RUN_PATH environment variables before issueing cargo build.

Alternatively, support for various features, including snappy, can be turned off at compile time. See kafka-rust's Cargo.toml and cargo's documentation.

Supported Kafka version

kafka-rust is tested against Kafka 0.8.2.x and regularly used against Kafka 0.9 servers. However, efforts to implement support for new features from the Kafka 0.9 release are just in their beginnings.

Examples

As mentioned, the cargo generated documentation constains some examples. Further, standalone, compilable example programs are provided in the examples directory of the repository.

This is a higher-level Consumer API for Kafka. It provides convenient offset management support on behalf of a specified group. This is the API a client application of this library wants to use for receiving messages from Kafka.

This is a higher-level Producer API for Kafka. It provides convenient automatic partition assignment capabilities through partitioners. This is the API a client application of this library wants to use for sending messsages to Kafka.

KafkaClient is the central point of this API. However, this is a mid-level abstraction for Kafka rather suitable for building higher-level APIs. Application's typically want to use the already mentioned Consumers and Producers. Nevertheless, KafkaClient's main methods are:

Bugs / Features / Contributing

There's still a lot of room for improvements on kafka-rust. Not everything works right at the moment. Have a look into the issue tracker and feel free to contribute by reporting new problems or contributing to existing ones. Any constructive contribution is warmly wellcome!

As usually with open source, don't hesitate to fork the repo and submit a pull requests if you see something to be changed. We'll be happy see kafka-rust improving over time.

Note unless otherwise explicitely stated in the documentation, this library will ignore requests to topics which it doesn't know about. In particular it will not try to retrieve messages from non-existing/unknown topics. (This behavior is very likely to change in future version of this library.)

Given a local kafka server installation you can create topics if the following command (kafka-topics.sh is part of the Kafka distribution):

kafka-topics.sh --topic my-topic --create --zookeeper localhost:2181  --partition 1 --replication-factor 1

kafka-rust's People

Contributors

spicavigo avatar xitep avatar winding-lines avatar jedisct1 avatar mblair avatar

Stargazers

Angus H. avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.