Official production-grade client SDKs for AeroStream's ultra-low-latency native binary protocol (0xAE 0x01 on TCP port 9091).
| Language | Directory / Package | Module / Package Identifier | Status |
|---|---|---|---|
| 𦫠Golang | go/ |
github.com/gradientgeeks/aerostream-sdk/go |
β v0.1.0-preview |
| π¦ Rust | rust/ |
aerostream-client |
β v0.1.0-preview |
| β Java | java/ |
org.gradientgeeks.aerostream:aerostream-client |
β v0.1.0-preview |
| π· .NET (C#) | dotnet/ |
GradientGeeks.AeroStream.Client |
β v0.1.0-preview |
| π© Node.js | nodejs/ |
@gradientgeeks/aerostream-client |
β v0.1.0-preview |
- Port 9092 (Kafka Wire Protocol): Drop-in replacement for standard Kafka SDKs (
kafka-clients,confluent-kafka,kafkajs,franz-go). - Port 9091 (AeroStream Native Protocol): 7-byte ultra-lightweight header, direct memory layout, zero Kafka envelope overhead, sub-millisecond tail latency.
+βββββββββββββββββββββ+ββββββββββββββ+ββββββββββββββββββββββ+ββββββββββββββββββββββββββ+
| Magic Bytes (2B) | Command (1B) | Body Length (4B BE) | Variable Payload (N B) |
| 0xAE 0x01 | uint8 (0..4) | uint32 | Command-Specific Bytes |
+βββββββββββββββββββββ+ββββββββββββββ+ββββββββββββββββββββββ+ββββββββββββββββββββββββββ+
- Command 0: Authentication Handshake (Bearer token)
- Command 1: High-Speed Produce / Append (assigned 64-bit log offset)
- Command 2: Consumer Fetch (bounded by partition High Watermark)
- Command 4: Multi-Entry Long-Polling Fetch (multi-record batches with server-side suspension)
package main
import (
"context"
"fmt"
"log"
"github.com/gradientgeeks/aerostream-sdk/go/client"
)
func main() {
c, err := client.NewClient("127.0.0.1:9091", client.WithAuthToken("secret-token"))
if err != nil {
log.Fatal(err)
}
defer c.Close()
producer := c.NewProducer()
offset, err := producer.Produce(context.Background(), "telemetry", 0, []byte("sensor-payload"))
fmt.Printf("Produced record at offset %d\n", offset)
}use aerostream_client::{AeroClient, ClientConfig};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = AeroClient::connect(
ClientConfig::new("127.0.0.1:9091")
.with_auth_token("secret-token")
).await?;
let producer = client.producer();
let offset = producer.send("telemetry", 0, b"sensor-payload").await?;
println!("Produced record at offset {offset}");
Ok(())
}import org.gradientgeeks.aerostream.client.AeroClient;
import org.gradientgeeks.aerostream.client.AeroProducer;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) {
try (AeroClient client = AeroClient.connect("127.0.0.1:9091", "secret-token");
AeroProducer producer = client.producer()) {
long offset = producer.send("telemetry", 0, "sensor-payload".getBytes(StandardCharsets.UTF_8));
System.out.printf("Produced record at offset %d%n", offset);
}
}
}using System.Text;
using GradientGeeks.AeroStream.Client;
await using var client = await AeroClient.ConnectAsync(new AeroClientOptions {
BootstrapServers = ["127.0.0.1:9091"],
AuthToken = "secret-token"
});
var producer = client.CreateProducer();
long offset = await producer.SendAsync("telemetry", 0, Encoding.UTF_8.GetBytes("sensor-payload"));
Console.WriteLine($"Produced record at offset {offset}");import { AeroClient } from '@gradientgeeks/aerostream-client';
const client = await AeroClient.connect('127.0.0.1:9091', 'secret-token');
const producer = client.producer();
const offset = await producer.send('telemetry', 0, 'sensor-payload');
console.log(`Produced record at offset ${offset}`);
await client.close();Licensed under Apache License, Version 2.0 (LICENSE).