Skip to main content

ArkFlow v0.2.0 is now available!

· 3 min read
Chen quan
Software Engineer

We are excited to announce the official release of ArkFlow v0.2.0! ArkFlow is a high-performance Rust stream processing engine that provides powerful data flow processing capabilities. This version builds upon RC1/RC2 with further optimizations and improvements, delivering more stable performance and richer functionality.

Key Features

Diverse Component Support

Input Components

  • Kafka: Consume messages from Kafka topics
  • MQTT: Receive data from MQTT brokers
  • HTTP: Receive data through HTTP endpoints
  • Memory: Read data from memory message queues
  • File: Read data from files using SQL queries
  • Generate: Generate test data
  • Database: Query data from databases (MySQL, PostgreSQL, SQLite, Duckdb)

Output Components

  • Kafka: Write messages to Kafka topics
  • MQTT: Publish messages to MQTT brokers
  • HTTP: Send messages to HTTP servers
  • Drop: Discard messages
  • Stdout: Output messages to the console

Buffer Components

  • Memory Buffer: Provides memory message queues for temporary message storage and buffering, with backpressure support

Powerful Processing Capabilities

SQL Query Support

Data Processing

  • JSON processing
  • Protobuf encoding/decoding
  • Batch processing support

Extensibility

  • Modular design
  • Easy to extend with new input, output, and processor components

v0.2.0 Improvements

  • Performance optimization: Increased data processing throughput and reduced latency
  • Enhanced stability: Fixed issues found in RC1/RC2, improving system stability
  • Improved documentation: Updated component documentation and usage examples
  • Dependency updates: Updated core dependency library versions, enhancing security and compatibility

Quick Start

  1. Create a configuration file config.yaml:
logging:
level: info
streams:
- input:
type: "generate"
context: '{ "timestamp": 1625000000000, "value": 10, "sensor": "temp_1" }'
interval: 1ms
batch_size: 1000

buffer:
type: "memory"
capacity: 10
timeout: 10s
pipeline:
thread_num: 4
processors:
- type: "json_to_arrow"
- type: "sql"
query: "SELECT sum(value) as value ,avg(value) , 0 as x FROM flow"
- type: "arrow_to_json"


output:
type: "http"
url: "http://example.com/data"
method: "POST"
timeout_ms: 90
retry_count: 1
  1. Run ArkFlow:
./arkflow -c config.yaml

Examples

We provide various example configurations to help you quickly get started with ArkFlow:

Contribution

We welcome contributions from the community! If you find any issues or have suggestions for improvements, please submit issues or pull requests on GitHub.

Next Steps

We will continue to improve and optimize ArkFlow, adding more features and component support. Community contributions and feedback are welcome!