Iggy.rs

MessageStreamingReimagined

Iggy is the persistent message streaming platform written in Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing millions of messages per second.

Performance oriented

Iggy provides exceptionally high throughput and performance while utilizing minimal computing resources.This is not yet another extension running on top of the existing infrastructure, such as Kafka or SQL database. Iggy is the persistent message streaming log built from the ground up using the low lvl I/O for speed and efficiency.

Extremely efficient

Rust language guarantees the predictable resources' usage, thus, you no longer need to worry about a random GC spikes.

Multiple transports

TCP, QUIC, HTTP, or maybe all of them at once? Easily configure and enable the different transport protocols.

Advanced features

Users, partitioning, consumer groups, message deduplication, retention policy, data encryption and many more.

SDK support

Building the distributed systems might involve many programming languages, which is why, we provide different SDKs.

Management interface

Built-in terminal CLI to manage the streaming server, or maybe the modern Web UI? Why not both :)

Fully open sourced

Thanks to the power of community, we can constantly improve Iggy and support multiple programming languages SDKs.

Dedicated Web UI

Iggy.rs comes with a modern Web UI allowing you to manage all the streams, topics, users and all other server resources.

webUI statswebUI stats
webUI

Fully-featured CLI

Dive into terminal-based workflows effortlessly with our CLI, offering comprehensive support for all tasks and operations.


Commands:
  stream           stream operations [aliases: s]
  topic            topic operations [aliases: t]
  partition        partition operations [aliases: p]
  ping             ping iggy server
  me               get current client info
  stats            get iggy server statistics
  pat              personal access token operations
  user             user operations [aliases: u]
  client           client operations [aliases: c]
  consumer-group   consumer group operations [aliases: g]
  consumer-offset  consumer offset operations [aliases: o]
  message          message operations [aliases: m]
  context          context operations [aliases: ctx]
  login            login to Iggy server [aliases: li]
  logout           logout from Iggy server [aliases: lo]
  help             Print this message or the help of the given subcommand(s)


Run 'iggy --help' for full help message.
Run 'iggy COMMAND --help' for more information on a command.

For more help on what's Iggy and how to use it, head to https://iggy.rs
    

Supported programming languages SDK

Building the distributed systems might involve many programming languages, which is why, we provide different SDKs.

Rust

C#

Node

Java

Go

Python

C++

Elixir

1let stream_id = Identifier::numeric(1)?;
2let topic_id = Identifier::named("orders")?;
3let consumer = Consumer::group("payment-svc".try_into()?);
4let messages_per_batch = 1000;
5let auto_commit = true;
6let messages = vec![Message::from_str("hello-world")?];
7
8// Append the messages using a particular partitioning strategy
9client.send_messages(&stream_id, &topic_id, &Partitioning::balanced(),
10        &mut messages).await?;
11
12// Fetch the messages based on a specified polling strategy
13let polled_messages = client.poll_messages(&stream_id, &topic_id, None, &consumer,
14		&PollingStrategy::offset(0), messages_per_batch, auto_commit).await?;
15    

Trusted by

Meet our early adopters who have found Iggy to be a great solution for their demands

Latest blog posts

Stay ahead with our latest updates and keep track of our progress. Follow along as we navigate through milestones and achievements.

blog posts background