Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-06-13 | 21.3 kB | |
Release v0.4.0-rc1 source code.tar.gz | 2025-06-13 | 559.5 kB | |
Release v0.4.0-rc1 source code.zip | 2025-06-13 | 710.3 kB | |
Totals: 3 Items | 1.3 MB | 7 |
ArkFlow is a high-performance stream processing engine built in Rust, designed to seamlessly integrate AI capabilities for powerful real-time data processing and intelligent analysis. This release, version 0.4.0-rc1, marks a significant step forward, introducing a wealth of new connectivity options, enhanced processing capabilities, and crucial performance optimizations. As a release candidate, v0.4.0-rc1 offers the community an early look at these advancements, providing an opportunity for testing and feedback before the final stable release.
ArkFlow v0.4.0-rc1 significantly expands its ecosystem integration and data processing capabilities. Key highlights of this release include: - Expanded Data Source and Sink Connectivity: Introduction of new input connectors for Modbus and enhanced database support (MySQL, PostgreSQL), alongside a new Redis output module. - Enhanced Object Storage Integration: Comprehensive support for major cloud and distributed object storage systems, including AWS S3, Google Cloud Storage, Azure Blob Storage, and HDFS. - Advanced Data Processing: New Python processor for custom script execution and support for SQL JOIN operations, enabling more complex data transformations and enrichments. - Performance and Stability: Notable performance improvements in backpressure control, Redis pipeline operations, and multi-threaded join buffers, coupled with important bug fixes. - Architectural Refinements: Significant refactoring of Kafka output components and the underlying codec system to improve maintainability and extensibility.
These features collectively enhance ArkFlow's position as a flexible and powerful stream processing engine, catering to a wider range of use cases and deployment environments.
New Features
This release candidate introduces several new components and functionalities, broadening ArkFlow's capabilities in data ingestion, processing, and output.
-
Redis Output Module (PR [#329]): ArkFlow now includes a dedicated output module for Redis. This allows processed data streams to be written to Redis lists or channels, facilitating integration with applications that use Redis as a message broker, cache, or data store. The addition of a Redis output complements the existing Redis input, enabling full-duplex stream processing workflows involving Redis. This new connector enhances ArkFlow's ability to integrate into diverse data architectures where Redis plays a key role, supporting use cases like real-time notifications, caching, and inter-service communication.
-
MySQL and PostgreSQL Output Support (PR [#297]): Support for writing data to MySQL and PostgreSQL databases has been added. This feature enables users to directly persist processed stream data into these popular relational databases, streamlining data warehousing, analytics, and reporting workflows. Previously, ArkFlow supported querying these databases as input sources ; this addition provides symmetrical output capabilities, simplifying the data pipeline for users of these relational database management systems (RDBMS). This direct database integration reduces the need for intermediate storage or custom scripting, making it easier to build end-to-end data solutions.
-
Modbus Input Support (PR [#406]): A new input component for Modbus communication has been introduced. Modbus is a widely used protocol in industrial control systems (ICS) and SCADA environments. This addition allows ArkFlow to ingest data directly from industrial devices like PLCs, sensors, and meters. Integrating Modbus support opens up ArkFlow to Industrial IoT (IIoT) use cases, enabling real-time monitoring, anomaly detection, and predictive maintenance for industrial operations. This feature directly addresses the growing need for advanced data processing and AI capabilities at the edge in industrial settings.
-
Object Storage Support: This release significantly expands ArkFlow's ability to interact with various object storage solutions, which are critical for scalable and durable data storage in modern data architectures.
-
Python Processor Support (PR [#409]): A new Python processor enables users to execute custom Python scripts as part of an ArkFlow pipeline. This feature provides immense flexibility, allowing developers to implement complex data transformations, integrate custom machine learning models, or leverage the vast ecosystem of Python libraries directly within their stream processing workflows. While ArkFlow offers built-in processors for common tasks , the Python processor acts as a powerful extensibility point for use cases requiring specialized logic not covered by standard components. This empowers users to tailor data processing to their specific needs without being limited by pre-defined functionalities.
-
SQL JOIN Operation Support (PR [#391]): ArkFlow's SQL processing capabilities have been enhanced with support for JOIN operations. This allows for the enrichment of streaming data by combining it with other data streams or reference datasets based on common keys. JOIN operations are fundamental for many real-time analytics scenarios, such as correlating events, augmenting data with contextual information, or performing complex event processing. This addition significantly increases the power and expressiveness of ArkFlow's SQL interface, enabling more sophisticated data manipulation directly within the stream.
Enhancements & Optimizations
Beyond new features, v0.4.0-rc1 includes several improvements aimed at boosting performance, stability, and maintainability.
-
Backpressure Control Performance Improvement (PR [#349]): The mechanisms for handling backpressure within the streaming pipeline have been optimized. Effective backpressure is crucial for preventing system overloads when downstream components cannot process data as fast as upstream components are producing it. These improvements ensure smoother data flow and greater stability under high load conditions, preventing data loss and maintaining system responsiveness. This enhancement contributes to ArkFlow's reliability in production-like scenarios where fluctuating data rates are common.
-
Redis Pipeline Performance Optimization (PR [#355]): Performance for operations involving Redis has been enhanced, likely through the use of pipelining or other batching techniques. Redis pipelining allows multiple commands to be sent to the server without waiting for the replies to each command individually, significantly reducing latency. This optimization benefits both Redis input and the newly added Redis output, making interactions with Redis faster and more efficient.
-
Multi-threaded Join Buffer Performance Improvement (PR [#473]): The performance of join operations, particularly those involving buffering of data from multiple streams, has been improved through multi-threading. Joins in stream processing can be resource-intensive, requiring efficient management of state and incoming data. By leveraging multiple threads, ArkFlow can process these joins more concurrently, leading to higher throughput and lower latency for complex data correlation tasks. This optimization is particularly important given the new SQL JOIN support.
What's Changed
- chore(deps): upgrade redis client by @chenquan in https://github.com/arkflow-rs/arkflow/pull/328
- chore(deps): Upgrade axum to version 0.7 and update related dependencies by @chenquan in https://github.com/arkflow-rs/arkflow/pull/330
- chore(deps): bump aws-lc-sys from 0.28.0 to 0.28.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/265
- chore: Update the version number to 0.3.1 by @chenquan in https://github.com/arkflow-rs/arkflow/pull/333
- chore(deps): bump tempfile from 3.19.1 to 3.20.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/335
- chore(deps): bump libloading from 0.8.6 to 0.8.7 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/334
- refactor(kafka): Refactoring the Kafka output component by @chenquan in https://github.com/arkflow-rs/arkflow/pull/340
- chore(deps): bump backtrace from 0.3.74 to 0.3.75 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/341
- chore(deps): bump idna_adapter from 1.2.0 to 1.2.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/338
- chore(deps): bump resolv-conf from 0.7.1 to 0.7.4 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/342
- chore(deps): bump stacker from 0.1.20 to 0.1.21 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/346
- chore(deps): bump sha2 from 0.10.8 to 0.10.9 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/345
- feat: Support for the ordering of messages under concurrency by @chenquan in https://github.com/arkflow-rs/arkflow/pull/347
- feat(pipeline): Adds a default thread count configuration by @chenquan in https://github.com/arkflow-rs/arkflow/pull/348
- perf(processor): adds back pressure control by @chenquan in https://github.com/arkflow-rs/arkflow/pull/349
- chore(deps): bump synstructure from 0.13.1 to 0.13.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/336
- chore(deps): bump crc from 3.2.1 to 3.3.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/352
- chore(deps): bump psm from 0.1.25 to 0.1.26 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/350
- feat(input): Add support for Redis cluster mode by @chenquan in https://github.com/arkflow-rs/arkflow/pull/331
- chore(deps): bump aws-lc-rs from 1.13.0 to 1.13.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/351
- chore(deps): bump webpki-roots from 0.26.10 to 0.26.11 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/339
- feat(output): Add Redis output module by @chenquan in https://github.com/arkflow-rs/arkflow/pull/329
- perf(redis): Use pipelines to optimize the performance of Redis operations by @chenquan in https://github.com/arkflow-rs/arkflow/pull/355
- perf(expr): Evaluate performance using once_cell and cache-optimized expressions by @chenquan in https://github.com/arkflow-rs/arkflow/pull/356
- Add MySQL and PostgreSQL support to Output plugin by @kyounghunJang in https://github.com/arkflow-rs/arkflow/pull/297
- chore(deps): bump async-nats from 0.40.0 to 0.41.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/357
- chore(deps): Updated tokio-tungstenite dependencies to version 0.26.2 by @chenquan in https://github.com/arkflow-rs/arkflow/pull/359
- chore(deps): bump vrl from 0.23.0 to 0.24.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/366
- chore(deps): bump windows-result from 0.3.3 to 0.3.4 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/367
- chore(deps): bump hyper-util from 0.1.11 to 0.1.12 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/365
- chore(deps): bump windows-core from 0.61.1 to 0.61.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/364
- docs: Add a DeepWiki badge by @chenquan in https://github.com/arkflow-rs/arkflow/pull/368
- chore(deps): bump psl from 2.1.109 to 2.1.110 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/370
- chore(deps): bump anstyle-wincon from 3.0.7 to 3.0.8 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/377
- feat(temporary): Add a temporary component module by @chenquan in https://github.com/arkflow-rs/arkflow/pull/363
- chore(deps): bump cc from 1.2.23 to 1.2.24 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/379
- chore(deps): bump uuid from 1.16.0 to 1.17.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/380
- chore(deps): bump os_pipe from 1.2.1 to 1.2.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/381
- feat(input/sql): Adds support for S3 object storage by @chenquan in https://github.com/arkflow-rs/arkflow/pull/382
- chore(input/sql): Updated S3 configuration and object storage URL handling by @chenquan in https://github.com/arkflow-rs/arkflow/pull/383
- chore(deps): bump aws-sdk-sts from 1.69.0 to 1.71.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/378
- feat(input/sql):Add support for Google Cloud Storage by @chenquan in https://github.com/arkflow-rs/arkflow/pull/384
- refactor: Name Google Cloud Storage enumeration variable weight as GS by @chenquan in https://github.com/arkflow-rs/arkflow/pull/385
- feat(input/sql): Add support for Azure object storage by @chenquan in https://github.com/arkflow-rs/arkflow/pull/386
- feat(input/sql): Add support for HTTP object storage by @chenquan in https://github.com/arkflow-rs/arkflow/pull/387
- chore(deps): bump aws-sdk-sso from 1.68.0 to 1.70.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/376
- chore(deps): bump aws-sdk-ssooidc from 1.69.0 to 1.71.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/375
- chore(deps): Switch ballista dependency from git version to specified version 46 by @chenquan in https://github.com/arkflow-rs/arkflow/pull/388
- docs(README): Add user information by @chenquan in https://github.com/arkflow-rs/arkflow/pull/390
- feat(input): Added support for multiple inputs by @chenquan in https://github.com/arkflow-rs/arkflow/pull/389
- chore(deps): bump tokio from 1.45.0 to 1.45.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/396
- chore(deps): bump socket2 from 0.5.9 to 0.5.10 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/397
- chore(deps): bump psl from 2.1.110 to 2.1.111 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/394
- chore(deps): bump lalrpop from 0.22.1 to 0.22.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/393
- chore(deps): bump lalrpop-util from 0.22.1 to 0.22.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/395
- feat: support join operation by @chenquan in https://github.com/arkflow-rs/arkflow/pull/391
- chore(docker): Update the Docker image to Rust version 1.86-slim by @chenquan in https://github.com/arkflow-rs/arkflow/pull/405
- feat(sql): Added HDFS object storage support by @chenquan in https://github.com/arkflow-rs/arkflow/pull/410
- feat(input): Supports modbus input by @chenquan in https://github.com/arkflow-rs/arkflow/pull/406
- chore(deps): bump rustversion from 1.0.20 to 1.0.21 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/401
- chore(deps): bump mio from 1.0.3 to 1.0.4 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/399
- chore(deps): bump psl from 2.1.111 to 2.1.114 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/408
- chore(deps): bump onig from 6.4.0 to 6.5.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/402
- 更新 README.md by @chenquan in https://github.com/arkflow-rs/arkflow/pull/411
- chore(deps): bump tower-http from 0.6.4 to 0.6.5 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/416
- chore(deps): bump reqwest from 0.12.15 to 0.12.18 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/415
- chore(deps): bump aws-sdk-sso from 1.70.0 to 1.71.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/413
- feat(processor): supports python by @chenquan in https://github.com/arkflow-rs/arkflow/pull/409
- chore(deps): bump openssl-sys from 0.9.108 to 0.9.109 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/417
- chore(deps): bump prettyplease from 0.2.32 to 0.2.33 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/419
- chore(deps): bump lock_api from 0.4.12 to 0.4.13 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/414
- chore(deps): bump icu_properties from 2.0.0 to 2.0.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/361
- chore(deps): bump icu_properties_data from 2.0.0 to 2.0.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/362
- chore(deps): bump tower-http from 0.6.5 to 0.6.6 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/426
- chore(deps): bump openssl from 0.10.72 to 0.10.73 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/424
- chore(deps): upgrade datafusion-table-providers version by @chenquan in https://github.com/arkflow-rs/arkflow/pull/427
- chore(deps): bump rustversion from 1.0.20 to 1.0.21 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/425
- chore(deps): bump anstream from 0.6.18 to 0.6.19 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/421
- chore(deps): bump grok from 2.0.0 to 2.1.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/423
- chore(deps): bump libloading from 0.8.7 to 0.8.8 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/422
- docs: add cncf description by @chenquan in https://github.com/arkflow-rs/arkflow/pull/428
- docs: update readme by @chenquan in https://github.com/arkflow-rs/arkflow/pull/429
- docs: add python by @chenquan in https://github.com/arkflow-rs/arkflow/pull/438
- chore(deps): bump cc from 1.2.24 to 1.2.26 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/436
- chore(deps): bump mio from 1.0.3 to 1.0.4 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/437
- chore: simplify the code for the python part by @chenquan in https://github.com/arkflow-rs/arkflow/pull/439
- chore: simplify the code for the python part by @chenquan in https://github.com/arkflow-rs/arkflow/pull/440
- chore(action): add sccache to speed up Rust project builds by @chenquan in https://github.com/arkflow-rs/arkflow/pull/441
- chore(deps): bump colorchoice from 1.0.3 to 1.0.4 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/434
- docs: add docs in readme by @chenquan in https://github.com/arkflow-rs/arkflow/pull/443
- feat(input): Split the
file
from thesql
by @chenquan in https://github.com/arkflow-rs/arkflow/pull/442 - chore(deps): bump toml_datetime from 0.6.9 to 0.6.11 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/447
- chore(deps): bump tracing-attributes from 0.1.28 to 0.1.29 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/448
- chore(deps): bump anstyle from 1.0.10 to 1.0.11 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/446
- chore(deps): bump psl from 2.1.111 to 2.1.119 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/445
- chore(deps): bump bumpalo from 3.17.0 to 3.18.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/432
- chore(deps): bump portable-atomic from 1.11.0 to 1.11.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/433
- chore(deps): bump anstyle-query from 1.1.2 to 1.1.3 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/431
- refactor(codec): refactoring the codec by @chenquan in https://github.com/arkflow-rs/arkflow/pull/449
- docs: add mores docs by @chenquan in https://github.com/arkflow-rs/arkflow/pull/450
- docs: add Multiple Inputs by @chenquan in https://github.com/arkflow-rs/arkflow/pull/451
- chore(deps): bump hyper-util from 0.1.12 to 0.1.14 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/453
- chore(deps): bump redis from 0.31.0 to 0.32.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/456
- chore(deps): bump num_cpus from 1.16.0 to 1.17.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/457
- chore(deps): bump smallvec from 1.15.0 to 1.15.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/455
- chore(deps): bump anstyle-wincon from 3.0.8 to 3.0.9 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/458
- chore(deps): bump serde_spanned from 0.6.8 to 0.6.9 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/452
- refactor(output/sql): refactor sql by @chenquan in https://github.com/arkflow-rs/arkflow/pull/461
- chore(deps): bump clap from 4.5.38 to 4.5.40 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/467
- docs: update description by @chenquan in https://github.com/arkflow-rs/arkflow/pull/468
- chore(deps): bump aws-sdk-sts from 1.71.0 to 1.73.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/462
- chore(deps): bump async-nats from 0.41.0 to 0.42.0 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/466
- chore(deps): bump brace-expansion from 1.1.11 to 1.1.12 in /docs by @dependabot in https://github.com/arkflow-rs/arkflow/pull/469
- chore(deps): bump flate2 from 1.1.1 to 1.1.2 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/470
- chore(deps): bump clap_lex from 0.7.4 to 0.7.5 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/472
- chore(deps): bump aws-smithy-http-client from 1.0.2 to 1.0.3 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/471
- chore(deps): bump backon from 1.5.0 to 1.5.1 by @dependabot in https://github.com/arkflow-rs/arkflow/pull/465
- perf(buffer/join): Add multi-threaded support to improve batch processing performance by @chenquan in https://github.com/arkflow-rs/arkflow/pull/473
- refactor(buffer/join): Improve memory allocation efficiency in split_batch by @chenquan in https://github.com/arkflow-rs/arkflow/pull/474
- chore: release v0.4.0-rc1 by @chenquan in https://github.com/arkflow-rs/arkflow/pull/475
Full Changelog: https://github.com/arkflow-rs/arkflow/compare/v0.3.1...v0.4.0-rc1