rivven 0.0.21

Command-line interface for Rivven event streaming platform
# rivven

> Command-line interface for the Rivven event streaming platform.

## Overview

`rivven` provides a CLI for managing topics, producing/consuming messages, and administering consumer groups. Designed for both interactive use and scripting.

For CDC (Change Data Capture), use the separate `rivven-connect` binary.

## Installation

```bash
cargo install rivven
```

## Quick Start

```bash
# Check connectivity
rivven ping --server 127.0.0.1:9092

# Create a topic
rivven topic create my-topic --partitions 3

# Produce a message
rivven produce my-topic "Hello, Rivven!"

# Consume messages
rivven consume my-topic --partition 0 --offset 0 --max 10
```

## Commands

### Topic Management

```bash
# List all topics
rivven topic list

# Create topic with partitions (default: 3)
rivven topic create my-topic --partitions 6

# Get topic metadata (name + partition count)
rivven topic info my-topic

# Delete a topic
rivven topic delete my-topic
```

### Produce Messages

```bash
# Produce a message (positional arguments: topic, message)
rivven produce my-topic "Hello, Rivven!"

# Produce with a key
rivven produce my-topic '{"event": "login"}' --key user-123

# Produce to a specific partition
rivven produce my-topic "partitioned" --partition 0

# Connect to a different server
rivven produce my-topic "msg" --server 10.0.0.1:9092
```

### Consume Messages

```bash
# Consume from partition 0, offset 0 (defaults)
rivven consume my-topic

# Consume from a specific partition and offset
rivven consume my-topic --partition 2 --offset 100

# Limit number of messages (default: 100)
rivven consume my-topic --max 10

# Follow mode — continuously consume new messages (like tail -f)
rivven consume my-topic --follow
```

### Consumer Group Management

```bash
# List all consumer groups
rivven group list

# Describe a group (show committed offsets per topic/partition)
rivven group describe my-group

# Delete a consumer group
rivven group delete my-group
```

### Connectivity

```bash
# Ping the server
rivven ping

# Ping a specific server
rivven ping --server 10.0.0.1:9092
```

## Global Options

All commands accept `--server <address>` to override the default server address (`127.0.0.1:9092`).

## Documentation

- [Getting Started]https://rivven.hupe1980.github.io/rivven/docs/getting-started

## License

Apache-2.0. See [LICENSE](../../LICENSE).