topic-stream 0.1.2

Multi-topic publish-subscribe system in Rust with async support
Documentation
# topic-stream

topic_stream is an asynchronous, topic-based publish-subscribe library for Rust,
designed to provide an efficient way to broadcast messages to multiple subscribers.
It leverages async-broadcast for message passing and dashmap for concurrent topic management.

## Features

- **Topic-Based Messaging**: Subscribers receive messages based on topics they subscribe to.

- **Asynchronous & Non-Blocking**: Uses async-broadcast for efficient message delivery.

- **Multiple Subscribers per Topic**: Supports multiple receivers listening to the same topic.

- **Multi-Topic Subscription**: Subscribe to multiple topics simultaneously and receive messages from all of them.


## Usage

Here's a basic example of how to use `topic_stream`:

```rust
use topic_stream::TopicStream;

#[tokio::main]
async fn main() {
    let topic_stream = TopicStream::<String, String>::new(10);

    let topic = "news".to_string();
    let mut receiver = topic_stream.subscribe(&[topic.clone()]);

    topic_stream
        .publish(&topic, "Publish message".to_string())
        .await
        .unwrap();

    // Receive the message
    if let Some(message) = receiver.recv().await {
        println!("Received: {}", message);
    }
}
```

## Running Tests
```
cargo test
```

### License

This project is licensed under the MIT License.

### Contributions

Contributions, issues, and feature requests are welcome! Feel free to submit a PR or open an issue.