<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://arkflow-rs.com/zh-Hans/blog</id>
    <title>ArkFlow Blog</title>
    <updated>2025-06-14T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://arkflow-rs.com/zh-Hans/blog"/>
    <subtitle>ArkFlow Blog</subtitle>
    <icon>https://arkflow-rs.com/zh-Hans/img/favicon.svg</icon>
    <entry>
        <title type="html"><![CDATA[ArkFlow+Python: Easy Real-time AI]]></title>
        <id>https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI</id>
        <link href="https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI"/>
        <updated>2025-06-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Today, with great excitement, we proudly introduce a revolutionary update to the ArkFlow stream processing engine: full support for Python processors! This is not just a simple feature iteration; it marks a solid step towards more intelligent, user-friendly, and powerful real-time data processing. We are keenly aware of Python's immense influence and its vast ecosystem in the fields of artificial intelligence and machine learning. Now, with ArkFlow, you can seamlessly integrate all of this into high-performance, real-time stream processing pipelines.]]></summary>
        <content type="html"><![CDATA[<p>Today, with great excitement, we proudly introduce a revolutionary update to the ArkFlow stream processing engine: full support for Python processors! This is not just a simple feature iteration; it marks a solid step towards more intelligent, user-friendly, and powerful real-time data processing. We are keenly aware of Python's immense influence and its vast ecosystem in the fields of artificial intelligence and machine learning. Now, with ArkFlow, you can seamlessly integrate all of this into high-performance, real-time stream processing pipelines.</p>
<p>The modern data landscape is characterized by continuous, high-velocity streams of data originating from a multitude of sources, including IoT devices, user interactions, financial trading systems, and sensor networks. While traditional batch processing methods are suitable for historical data analysis, they fall short in scenarios requiring immediate insights and rapid responses. Artificial intelligence (AI) and machine learning (ML) models possess powerful analytical capabilities on their own, but we firmly believe their business value is maximized when applied to real-time, flowing data. The ability to perform inference, detect anomalies, or understand language the moment data arrives has become a key competitive advantage across industries.</p>
<p>Although some discussions suggest that not all historical application scenarios strictly require true real-time processing, current trends and specific needs clearly point to the importance of real-time AI capabilities. As we agree, "data in motion can generate greater value." Particularly in fields like fraud detection, traditional batch processing methods are "no longer effective," and stream processing platforms (such as Kafka) play a central role in enabling real-time analytics.</p>
<p>The core of the real-time capability we pursue is not just about speed, but about the <em>timeliness</em> of insights. In dynamic operational environments such as fraud detection, algorithmic trading, or critical system monitoring, an insight delayed by even a few seconds can lose all its value. The value of predictions, classifications, or other actionable insights generated by AI models decays rapidly over time in many critical business and operational scenarios. Therefore, we are committed to enabling you to process data and apply AI algorithms simultaneously as the data flows in, which is crucial for maximizing the utility and impact of these insights. This places stringent demands on the underlying technology platform, and it is precisely why we created ArkFlow—to provide a solution that seamlessly integrates high-performance stream processing with the execution of complex AI models.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="the-python-processor">The Python Processor<a href="https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI#the-python-processor" class="hash-link" aria-label="The Python Processor的直接链接" title="The Python Processor的直接链接" translate="no">​</a></h3>
<p>The Python processor significantly lowers the barrier for the large community of data scientists and machine learning engineers, who primarily use Python, to deploy their models and algorithms in high-throughput, low-latency stream processing applications. Previously, this often required developers to have deep expertise in systems languages used for building stream processors, such as Rust or Java/Scala, or to deal with complex integration layers. We believe this newfound accessibility will accelerate the adoption and innovation of real-time AI solutions across various industries. The use of PyArrow is a key technical pillar in achieving this goal, ensuring efficient data exchange between the Rust core and the Python processor, thereby maintaining overall performance. Traditionally, AI model development and real-time stream processing deployment have been complex, requiring expertise in both AI and the internal mechanisms of stream processing systems like Flink or Spark. As the dominant language for AI/ML development, Python boasts a vast talent pool and a rich ecosystem of libraries. By allowing Python to be used directly within a high-performance stream processor, ArkFlow reduces the need for developers to learn new languages (like Rust) or complex integration patterns to implement their AI logic, making it easier for a broader range of developers to build real-time AI applications. PyArrow plays a crucial role in this process by providing an efficient and standardized way to transfer data between ArkFlow's Rust core and the Python processor, minimizing the serialization overhead that typically degrades performance in multi-language systems.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="how-the-python-processor-works-in-arkflow">How the Python Processor Works in ArkFlow<a href="https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI#how-the-python-processor-works-in-arkflow" class="hash-link" aria-label="How the Python Processor Works in ArkFlow的直接链接" title="How the Python Processor Works in ArkFlow的直接链接" translate="no">​</a></h3>
<p>A key aspect of this integration is our use of the PyArrow library for data exchange. Apache Arrow and its Python bindings, PyArrow, provide a language-agnostic columnar memory format. This format is designed for efficient data sharing between different processes and systems, often enabling zero-copy (or near-zero-copy) data access. In the context of ArkFlow (a Rust application) and its Python processors, the Arrow format allows structured data (such as record batches or data frames) to be passed from the Rust environment to a Python process (and vice versa) with minimal serialization and deserialization overhead. This is critical for maintaining performance when crossing language boundaries.</p>
<p>The choice of PyArrow for data exchange between ArkFlow's Rust core and its Python processors strongly demonstrates our project's commitment to maintaining high performance, even when introducing an external language runtime. Without an efficient data exchange mechanism like Apache Arrow, the overhead incurred from passing data between Rust and Python (e.g., by serializing to JSON or pickle and then deserializing) could easily negate the performance benefits of a fast, Rust-based core engine, especially when handling high-volume, low-latency data streams. Inter-process communication (IPC) or foreign function interfaces (FFI) between different programming languages like Rust and Python can introduce significant performance overhead if data needs to be repeatedly copied and converted between the different native memory layouts or data formats of each language. Apache Arrow defines a standardized, language-agnostic columnar memory format optimized for analytical data processing and efficient data movement. When both the producer (ArkFlow's Rust core) and the consumer (the Python processor) can read and write data in the Arrow format, data can often be shared or transferred with zero or minimal copying, significantly reducing the overhead across language boundaries. This data exchange efficiency is crucial for real-time AI applications where every millisecond of latency matters. Therefore, adopting Arrow makes Python suitable not just for trivial in-stream scripting tasks; it opens the door to executing complex AI model inference and other computationally intensive Python code with acceptable performance characteristics.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="unlocking-the-potential-of-pythons-ai-ecosystem-in-stream-processing">Unlocking the Potential of Python's AI Ecosystem in Stream Processing<a href="https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI#unlocking-the-potential-of-pythons-ai-ecosystem-in-stream-processing" class="hash-link" aria-label="Unlocking the Potential of Python's AI Ecosystem in Stream Processing的直接链接" title="Unlocking the Potential of Python's AI Ecosystem in Stream Processing的直接链接" translate="no">​</a></h3>
<p>Our explicit strategic intent in introducing Python support in ArkFlow is to enable users to directly "call any Python machine learning/deep learning library (TensorFlow, PyTorch, etc.) and large models" within their stream processing pipelines. This highlights the immense strategic value of Python integration. It means that developers, data scientists, and machine learning engineers can now directly leverage their existing Python skills, familiar tools, pre-trained models, and the vast and mature Python AI ecosystem within ArkFlow's high-performance stream processing environment. We believe this capability will dramatically accelerate the development cycle and deployment of complex real-time AI applications.</p>
<p>The deep integration of Python within a high-performance stream processor like ArkFlow is poised to give rise to a new class of "stream-native" AI applications. In this paradigm, AI models are no longer just external components applied to data exported in batches from a stream, but are designed and deployed as integral, active components <em>within</em> the data stream itself. Traditionally, the worlds of AI model development (primarily in Python) and real-time stream processing (often in Java/Scala) have been somewhat separate. Deploying Python AI models in high-performance streams often involved data batching, using less efficient IPC, or requiring significant custom integration work. ArkFlow's native Python processor support allows AI logic written in Python to become a first-class citizen within the stream processing pipeline—a "processor" that interacts directly with the data flow. This tight integration facilitates the construction of systems where AI is not merely a passive consumer of stream data but an active participant in the processing, decision-making, and even real-time modification of the stream's behavior.</p>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="arkflow-python-based-real-time-ai-application-scenarios">ArkFlow: Python-Based Real-Time AI Application Scenarios<a href="https://arkflow-rs.com/zh-Hans/blog/2025/06/14/ArkFlow+Python-Easy-Real-time-AI#arkflow-python-based-real-time-ai-application-scenarios" class="hash-link" aria-label="ArkFlow: Python-Based Real-Time AI Application Scenarios的直接链接" title="ArkFlow: Python-Based Real-Time AI Application Scenarios的直接链接" translate="no">​</a></h3>
<p>We have noted that user queries explicitly point to the need to run machine learning models (like TensorFlow, ONNX) directly within data streams to achieve millisecond-level prediction and analysis. In ArkFlow, a Python processor instantiated within a pipeline is configured to load a pre-trained machine learning model. These models can be in various standard formats, such as TensorFlow SavedModel, ONNX graph, or PyTorch (.pt or .pth) files. Input data records from the stream, possibly pre-processed by upstream ArkFlow native processors (e.g., for data cleansing, feature extraction, or format conversion), are efficiently passed to the Python process via PyArrow. The script within the Python processor utilizes the runtime of the corresponding AI framework (e.g., TensorFlow's <code>predict</code> method, ONNX Runtime session's <code>run</code>, PyTorch's <code>forward</code> pass) to perform inference on the received data. The inference results—such as predicted values, classification outcomes, embedding vectors, or other model outputs—are then passed back from the Python process to the ArkFlow pipeline using PyArrow for subsequent downstream processing, routing to an output, or triggering further actions.</p>
<p>This capability makes true millisecond-latency prediction and analysis on real-time data possible. This is crucial for a wide range of applications that require immediate responses, such as identifying objects or events in real-time video frames, flagging potentially fraudulent financial transactions <em>before</em> they are completed, making ultra-fast algorithmic trading decisions, or instantly personalizing user experiences. ArkFlow's intent to support these frameworks is clearly stated in our various information sources. To elaborate on how these frameworks are typically optimized for inference (which ArkFlow can now enable in-stream), one can refer to general concepts such as TensorFlow's graph freezing, inference optimization, quantization, JIT/AOT compilation, and ONNX Runtime's cross-platform execution, model export, and hardware acceleration capabilities. AWS Elastic Inference's support for TensorFlow and ONNX also indirectly corroborates the industry application of these technologies for accelerating inference.</p>
<p>Consider a manufacturing quality control system as an example: a stream of images from products on an assembly line is fed into ArkFlow. Each image is passed to a Python processor. This processor loads a pre-trained ONNX or TensorFlow computer vision model (e.g., a YOLO variant or a ResNet classifier) to detect defects. If a defect is identified, the model's output (e.g., defect type, location, confidence score) is passed back. ArkFlow can then immediately trigger an alert, divert the defective product, or log the issue within milliseconds of the image capture.</p>
<p>However, we must point out that achieving the sustained "millisecond-level" inference latency desired by users is a significant technical challenge. It largely depends on various factors such as the complexity of the AI model, the size of the input data, the efficiency of the Rust-Python interop layer, and the overall pipeline design. While ArkFlow's Rust core and the use of PyArrow lay the necessary foundation for low latency, users still need to rigorously optimize their AI models for inference speed. Millisecond-level latency sets a very tight time budget for the entire process of data transfer, pre-processing, model inference, and post-processing. Although ArkFlow's core engine is designed for speed, Python execution (especially for complex models) can be slower. Therefore, techniques such as model quantization (reducing numerical precision, e.g., to INT8), graph pruning, or fusion, and selecting lightweight model architectures are necessary. PyArrow is also critical in minimizing the data transfer overhead at the Rust-Python boundary. Consequently, achieving consistent millisecond-level predictions requires a holistic approach that includes model engineering and optimization from the user.</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[ArkFlow v0.3.0 is now available!]]></title>
        <id>https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release</id>
        <link href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release"/>
        <updated>2025-05-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We are thrilled to announce a significant update to ArkFlow!]]></summary>
        <content type="html"><![CDATA[<p>We are thrilled to announce a significant update to ArkFlow!
ArkFlow is a high-performance stream processing engine built on Rust, dedicated to providing powerful and easy-to-use data stream processing capabilities.
The latest version brings many exciting new features and significant enhancements designed to help you process complex data streams more efficiently.</p>
<p>In this blog post, we will delve into these new features, from broader data source connectivity and more powerful processing capabilities with custom extensions,
to landmark distributed computing experimental support,
and continuous performance and usability optimizations.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="new-upgrades-a-deep-dive-into-enhanced-core-capabilities">New Upgrades: A Deep Dive into Enhanced Core Capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#new-upgrades-a-deep-dive-into-enhanced-core-capabilities" class="hash-link" aria-label="New Upgrades: A Deep Dive into Enhanced Core Capabilities的直接链接" title="New Upgrades: A Deep Dive into Enhanced Core Capabilities的直接链接" translate="no">​</a></h2>
<p>ArkFlow's core components [input, processing, output, and buffering] have all received significant enhancements and expansions. Let's explore them.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="broader-input-connectivity-accessing-more-diverse-data-streams">Broader Input Connectivity: Accessing More Diverse Data Streams<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#broader-input-connectivity-accessing-more-diverse-data-streams" class="hash-link" aria-label="Broader Input Connectivity: Accessing More Diverse Data Streams的直接链接" title="Broader Input Connectivity: Accessing More Diverse Data Streams的直接链接" translate="no">​</a></h2>
<p>To enable ArkFlow to connect to a wider data ecosystem, we have introduced several new input components and strengthened the functionality of existing ones:</p>
<ul>
<li class="">
<p>Websocket Input (New): ArkFlow can now directly subscribe to messages from WebSocket connections. This is an important addition for scenarios requiring the processing of data from web applications or other real-time frontend push data.</p>
</li>
<li class="">
<p>Nats Input (New): Added support for the Nats messaging system, allowing subscription to messages from Nats topics. Nats is popular in modern cloud-native and microservice architectures for its high performance and simplicity. Integrating Nats allows ArkFlow to better fit into these environments. Its configuration has also been further optimized.</p>
</li>
<li class="">
<p>Redis Input (New): ArkFlow can now also subscribe to messages from Redis channels or lists. As a widely used cache and message broker, this new input component allows users to easily leverage existing Redis data streams. Its configuration has also been refactored for improved usability.</p>
</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="more-powerful-and-efficient-processing-capabilities">More Powerful and Efficient Processing Capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#more-powerful-and-efficient-processing-capabilities" class="hash-link" aria-label="More Powerful and Efficient Processing Capabilities的直接链接" title="More Powerful and Efficient Processing Capabilities的直接链接" translate="no">​</a></h2>
<p>The value of data lies in its flow and transformation. The new version also brings significant improvements in data processing:</p>
<ul>
<li class="">JSON Processor Optimization: JSON processing performance has been improved, particularly the json_to_arrow conversion logic. JSON is a ubiquitous data format, and optimizing its processing, especially by converting to the columnar storage format Arrow, can significantly enhance the performance of downstream SQL processing or other analytical tasks.</li>
<li class="">SQL Processor Enhancement and Custom UDF Support: The SQL processor's configuration and documentation have been refactored. More excitingly, the SQL processor now supports custom User-Defined Functions (UDFs). This powerful feature allows users to register their own functions, greatly expanding SQL's processing capabilities to meet specific business logic and complex data transformation needs. To ensure stability and ease of use, the UDF registration mechanism has also been improved, such as disallowing the injection of functions with the same name  and refactoring the registration function.</li>
<li class="">Protobuf Processor Adds Field Filtering: The Protobuf processor now supports field filtering. Protobuf is highly efficient for structured data, and field filtering allows users to select only necessary data, thereby reducing processing overhead and data volume.</li>
<li class="">Introduction of <a href="https://vector.dev/docs/reference/vrl/" target="_blank" rel="noopener noreferrer" class="">VRL</a> (Vector Remap Language) Processor: ArkFlow now has built-in support for VRL processing. VRL is a language specifically designed for transforming observability data (like logs and metrics), but its utility can extend to general data manipulation.</li>
</ul>
<p>Optimizations in JSON to Arrow conversion, significant enhancements to the SQL processor (especially UDF support), and improvements to the Protobuf processor indicate that ArkFlow is focusing on use cases involving structured and semi-structured data, where both transformation flexibility (SQL, VRL, UDF) and performance (Arrow, Protobuf filtering) are crucial.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="more-flexible-output-and-error-handling">More Flexible Output and Error Handling<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#more-flexible-output-and-error-handling" class="hash-link" aria-label="More Flexible Output and Error Handling的直接链接" title="More Flexible Output and Error Handling的直接链接" translate="no">​</a></h2>
<p>Processed data needs to be reliably delivered to its destination, and error handling is equally important.</p>
<ul>
<li class="">Nats Output (New!): ArkFlow now supports publishing processed data and error data to Nats topics. This complements the Nats input component, allowing users to build complete Nats-to-Nats data pipelines or integrate with other Nats consumers. Providing consistent Nats support for regular output and error output reflects our consideration for the completeness of new component integration.</li>
<li class="">Enhanced Error Output Mechanism:  ArkFlow has comprehensively enhanced its error output mechanism. This provides more powerful and flexible management and routing options for data that encounters issues during processing, thereby increasing the resilience of data pipelines and simplifying the debugging process.</li>
</ul>
<p>This symmetrical addition of Nats input, output, and error output, along with the improvement of overall error handling capabilities, demonstrates ArkFlow's thorough strategy in integrating new components and strengthening core functionalities, ensuring users can build more reliable and maintainable data processing links.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="more-granular-buffering-and-windowing-capabilities">More Granular Buffering and Windowing Capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#more-granular-buffering-and-windowing-capabilities" class="hash-link" aria-label="More Granular Buffering and Windowing Capabilities的直接链接" title="More Granular Buffering and Windowing Capabilities的直接链接" translate="no">​</a></h2>
<p>Buffering mechanisms in stream processing systems are crucial for handling backpressure, temporarily storing messages, and performing time-window aggregations.</p>
<p>Memory Buffer: ArkFlow continues to offer robust memory buffering capabilities, which are critical for high-throughput scenarios and basic window aggregation operations.</p>
<p>New Windowing Buffer Components!
To meet more complex time-series analysis and event stream processing needs, ArkFlow has introduced three specialized windowing buffer components:</p>
<ul>
<li class="">Session Window: Used for grouping data based on periods of inactivity, ideal for analyzing user sessions or related event chains.</li>
<li class="">Sliding Window: Provides continuously overlapping windows, allowing for smooth analysis of recent data, often used in scenarios like moving average calculations.</li>
<li class="">Tumbling Window: Divides data into fixed-size, non-overlapping time segments, suitable for aggregated reporting on fixed intervals.</li>
</ul>
<p>These new windowing buffer mechanisms greatly enhance the flexibility and power of ArkFlow in handling time-sensitive data,
enabling users to define and execute complex data aggregation and analysis logic with greater precision. They complement the existing memory buffer,
providing users with a richer toolset to tackle diverse stream processing challenges.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="experimental-introduction-of-distributed-computing-capabilities">Experimental introduction of distributed computing capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#experimental-introduction-of-distributed-computing-capabilities" class="hash-link" aria-label="Experimental introduction of distributed computing capabilities的直接链接" title="Experimental introduction of distributed computing capabilities的直接链接" translate="no">​</a></h2>
<p>The most notable feature evolution in recent ArkFlow development is undoubtedly the experimental distributed computing support.
It signifies that ArkFlow is evolving towards systems capable of handling larger data volumes and more demanding processing loads, allowing tasks to be distributed across multiple nodes or worker units.</p>
<h1>Underlying Optimizations: Continuously Improving Performance and Usability</h1>
<p>In addition to introducing heavyweight new components, the ArkFlow team also continuously refines existing functionalities to provide better performance and user experience.</p>
<p>We re-emphasize the JSON to Arrow conversion optimization , a concrete example of performance improvement.</p>
<p>To enhance the performance of the final product, the build process has also been optimized, for instance, by enabling Link-Time Optimization (LTO), setting codegen-units to 1 and setting opt-level to 3.</p>
<p>The plugin mechanism has been refactored, paving the way for easier development and integration of custom extensions in the future, further reinforcing ArkFlow's commitment to extensibility.
Documentation updates are also an area of continuous investment. To improve the clarity and usability of the documentation, we have split document versions. These ongoing documentation updates demonstrate our understanding that good documentation is crucial for product adoption and ease of use, especially as new features are constantly being added.</p>
<p>The project structure includes <a href="https://github.com/arkflow-rs/arkflow-plugin-examples" target="_blank" rel="noopener noreferrer" class="">arkflow-plugin-examples</a> , indicating our commitment to helping users extend the system. Modular design and extensibility are core features of ArkFlow. Providing examples is a practical way to lower the barrier for users to write custom plugins, which can greatly enhance the platform's capabilities beyond what the core team provides and foster a vibrant ecosystem. &nbsp;</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="experience-it-nowstart-or-upgrade-your-arkflow-journey">Experience It: NowStart or Upgrade Your ArkFlow Journey<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#experience-it-nowstart-or-upgrade-your-arkflow-journey" class="hash-link" aria-label="Experience It: NowStart or Upgrade Your ArkFlow Journey的直接链接" title="Experience It: NowStart or Upgrade Your ArkFlow Journey的直接链接" translate="no">​</a></h2>
<p>We encourage you to try the latest version of ArkFlow immediately!</p>
<p>Using the standard Rust toolchain (cargo) and common YAML configuration makes ArkFlow relatively easy to get started with for developers familiar with the Rust ecosystem and common configuration practices.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="acknowledgement-power-of-community">Acknowledgement: Power of community<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#acknowledgement-power-of-community" class="hash-link" aria-label="Acknowledgement: Power of community的直接链接" title="Acknowledgement: Power of community的直接链接" translate="no">​</a></h2>
<p>Thanks to <a href="https://github.com/xiaoziv" target="_blank" rel="noopener noreferrer" class="">@xiaoziv</a> for bringing us the VRL processor.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="join-the-arkflow-community-shape-the-future-together">Join the ArkFlow Community, Shape the Future Together<a href="https://arkflow-rs.com/zh-Hans/blog/2025/05/09/v0.3.0-release#join-the-arkflow-community-shape-the-future-together" class="hash-link" aria-label="Join the ArkFlow Community, Shape the Future Together的直接链接" title="Join the ArkFlow Community, Shape the Future Together的直接链接" translate="no">​</a></h2>
<p>We believe that flowing data can generate greater value  and are committed to building a vast data processing ecosystem to simplify the threshold for data processing. The development of ArkFlow relies on community support: &nbsp;</p>
<ul>
<li class="">Feel free to Star our project on GitHub!</li>
<li class="">Actively participate in GitHub Discussions, which has sections for announcements, Q&amp;A, and more. The project is actively fostering a community through GitHub Discussions, which is crucial for the growth, feedback, and contributions of an open-source project.</li>
<li class="">If you are interested, you are also welcome to become a contributor.</li>
</ul>
<p>Discord: <a href="https://discord.gg/CwKhzb8pux" target="_blank" rel="noopener noreferrer" class="">https://discord.gg/CwKhzb8pux</a></p>
<p>ArkFlow is committed to continuous improvement, with more exciting features in the pipeline. Stay tuned!</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[ArkFlow v0.2.0 is now available!]]></title>
        <id>https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release</id>
        <link href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release"/>
        <updated>2025-04-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[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.]]></summary>
        <content type="html"><![CDATA[<p>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.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="key-features">Key Features<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#key-features" class="hash-link" aria-label="Key Features的直接链接" title="Key Features的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="diverse-component-support">Diverse Component Support<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#diverse-component-support" class="hash-link" aria-label="Diverse Component Support的直接链接" title="Diverse Component Support的直接链接" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="input-components">Input Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#input-components" class="hash-link" aria-label="Input Components的直接链接" title="Input Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/kafka"><strong>Kafka</strong></a>: Consume messages from Kafka topics</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/mqtt"><strong>MQTT</strong></a>: Receive data from MQTT brokers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/http"><strong>HTTP</strong></a>: Receive data through HTTP endpoints</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/memory"><strong>Memory</strong></a>: Read data from memory message queues</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/sql"><strong>File</strong></a>: Read data from files using SQL queries</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/generate"><strong>Generate</strong></a>: Generate test data</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/sql"><strong>Database</strong></a>: Query data from databases (MySQL, PostgreSQL, SQLite, Duckdb)</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="output-components">Output Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#output-components" class="hash-link" aria-label="Output Components的直接链接" title="Output Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/kafka"><strong>Kafka</strong></a>: Write messages to Kafka topics</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/mqtt"><strong>MQTT</strong></a>: Publish messages to MQTT brokers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/http"><strong>HTTP</strong></a>: Send messages to HTTP servers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/drop"><strong>Drop</strong></a>: Discard messages</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/stdout"><strong>Stdout</strong></a>: Output messages to the console</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="buffer-components">Buffer Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#buffer-components" class="hash-link" aria-label="Buffer Components的直接链接" title="Buffer Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/buffers/memory"><strong>Memory Buffer</strong></a>: Provides memory message queues for temporary message storage and buffering, with backpressure support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="powerful-processing-capabilities">Powerful Processing Capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#powerful-processing-capabilities" class="hash-link" aria-label="Powerful Processing Capabilities的直接链接" title="Powerful Processing Capabilities的直接链接" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="sql-query-support">SQL Query Support<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#sql-query-support" class="hash-link" aria-label="SQL Query Support的直接链接" title="SQL Query Support的直接链接" translate="no">​</a></h4>
<ul>
<li class="">Built-in SQL processor using DataFusion as the query engine</li>
<li class="">Support for rich SQL features:<!-- -->
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/aggregate_functions">Aggregate Functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/window_functions">Window Functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/subqueries">Subqueries</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/scalar_functions">Scalar Functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/special_functions">Special Functions</a></li>
</ul>
</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="data-processing">Data Processing<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#data-processing" class="hash-link" aria-label="Data Processing的直接链接" title="Data Processing的直接链接" translate="no">​</a></h4>
<ul>
<li class="">JSON processing</li>
<li class="">Protobuf encoding/decoding</li>
<li class="">Batch processing support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="extensibility">Extensibility<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#extensibility" class="hash-link" aria-label="Extensibility的直接链接" title="Extensibility的直接链接" translate="no">​</a></h3>
<ul>
<li class="">Modular design</li>
<li class="">Easy to extend with new input, output, and processor components</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="v020-improvements">v0.2.0 Improvements<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#v020-improvements" class="hash-link" aria-label="v0.2.0 Improvements的直接链接" title="v0.2.0 Improvements的直接链接" translate="no">​</a></h3>
<ul>
<li class="">Performance optimization: Increased data processing throughput and reduced latency</li>
<li class="">Enhanced stability: Fixed issues found in RC1/RC2, improving system stability</li>
<li class="">Improved documentation: Updated component documentation and usage examples</li>
<li class="">Dependency updates: Updated core dependency library versions, enhancing security and compatibility</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="quick-start">Quick Start<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#quick-start" class="hash-link" aria-label="Quick Start的直接链接" title="Quick Start的直接链接" translate="no">​</a></h2>
<ol>
<li class="">Create a configuration file <code>config.yaml</code>:</li>
</ol>
<div class="language-yaml codeBlockContainer_z_ac theme-code-block" data-language="yaml" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><span class="af-code-lang" aria-hidden="true">yaml</span><div class="codeBlockContent_nqjx"><pre tabindex="0" class="prism-code language-yaml codeBlock_kjiA thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_yf3h"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">logging</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">level</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> info</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">streams</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">input</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"generate"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">context</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'{ "timestamp": 1625000000000, "value": 10, "sensor": "temp_1" }'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">interval</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> 1ms</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">batch_size</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1000</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">buffer</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"memory"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">capacity</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">timeout</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> 10s</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">pipeline</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">thread_num</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">processors</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"json_to_arrow"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sql"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">query</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"SELECT sum(value) as value ,avg(value) , 0 as x FROM flow"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"arrow_to_json"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">url</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http://example.com/data"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">method</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">timeout_ms</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">90</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">retry_count</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><br></span></code></pre></div></div>
<ol start="2">
<li class="">Run ArkFlow:</li>
</ol>
<div class="language-bash codeBlockContainer_z_ac theme-code-block" data-language="bash" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><span class="af-code-lang" aria-hidden="true">bash</span><div class="codeBlockContent_nqjx"><pre tabindex="0" class="prism-code language-bash codeBlock_kjiA thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_yf3h"><span class="token-line" style="color:#393A34"><span class="token plain">./arkflow -c config.yaml</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="examples">Examples<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#examples" class="hash-link" aria-label="Examples的直接链接" title="Examples的直接链接" translate="no">​</a></h2>
<p>We provide various example configurations to help you quickly get started with ArkFlow:</p>
<ul>
<li class=""><a href="https://github.com/arkflow-rs/arkflow/tree/main/examples" target="_blank" rel="noopener noreferrer" class="">Example Configurations</a></li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="contribution">Contribution<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#contribution" class="hash-link" aria-label="Contribution的直接链接" title="Contribution的直接链接" translate="no">​</a></h2>
<p>We welcome contributions from the community! If you find any issues or have suggestions for improvements, please submit issues or pull requests on GitHub.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="next-steps">Next Steps<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/15/v0.2.0-release#next-steps" class="hash-link" aria-label="Next Steps的直接链接" title="Next Steps的直接链接" translate="no">​</a></h2>
<p>We will continue to improve and optimize ArkFlow, adding more features and component support. Community contributions and feedback are welcome!</p>]]></content>
        <author>
            <name>Chen quan</name>
            <uri>https://github.com/chenquan</uri>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[ArkFlow v0.2.0-rc1 is now available!]]></title>
        <id>https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1</id>
        <link href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1"/>
        <updated>2025-04-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We are excited to announce the release of ArkFlow v0.2.0-rc1! ArkFlow is a high-performance Rust stream processing engine that provides powerful data stream processing capabilities. This version brings many important features and improvements.]]></summary>
        <content type="html"><![CDATA[<p>We are excited to announce the release of ArkFlow v0.2.0-rc1! ArkFlow is a high-performance Rust stream processing engine that provides powerful data stream processing capabilities. This version brings many important features and improvements.</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="key-features">Key Features<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#key-features" class="hash-link" aria-label="Key Features的直接链接" title="Key Features的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="diverse-component-support">Diverse Component Support<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#diverse-component-support" class="hash-link" aria-label="Diverse Component Support的直接链接" title="Diverse Component Support的直接链接" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="input-components">Input Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#input-components" class="hash-link" aria-label="Input Components的直接链接" title="Input Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/kafka"><strong>Kafka</strong></a>: Support for consuming messages from Kafka topics</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/mqtt"><strong>MQTT</strong></a>: Receive data from MQTT brokers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/http"><strong>HTTP</strong></a>: Receive data through HTTP endpoints</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/memory"><strong>Memory</strong></a>: Read data from memory message queues</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/sql"><strong>File</strong></a>: Read data from files using SQL queries</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/generate"><strong>Generate</strong></a>: Generate test data</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/inputs/sql"><strong>Database</strong></a>: Query data from databases (MySQL, PostgreSQL, SQLite, Duckdb)</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="output-components">Output Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#output-components" class="hash-link" aria-label="Output Components的直接链接" title="Output Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/kafka"><strong>Kafka</strong></a>: Write messages to Kafka topics</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/mqtt"><strong>MQTT</strong></a>: Publish messages to MQTT brokers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/http"><strong>HTTP</strong></a>: Send messages to HTTP servers</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/drop"><strong>Drop</strong></a>: Discard messages</li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/outputs/stdout"><strong>Stdout</strong></a>: Output messages to the console</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="buffer-components">Buffer Components<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#buffer-components" class="hash-link" aria-label="Buffer Components的直接链接" title="Buffer Components的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/components/buffers/memory"><strong>Memory Buffer</strong></a>: Provides memory message queues for temporary message storage and buffering, with backpressure support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="powerful-processing-capabilities">Powerful Processing Capabilities<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#powerful-processing-capabilities" class="hash-link" aria-label="Powerful Processing Capabilities的直接链接" title="Powerful Processing Capabilities的直接链接" translate="no">​</a></h3>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="sql-query-support">SQL Query Support<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#sql-query-support" class="hash-link" aria-label="SQL Query Support的直接链接" title="SQL Query Support的直接链接" translate="no">​</a></h4>
<ul>
<li class="">Built-in SQL processor using DataFusion as the query engine</li>
<li class="">Support for rich SQL features:<!-- -->
<ul>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/aggregate_functions">Aggregation functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/window_functions">Window functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/subqueries">Subqueries</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/scalar_functions">Scalar functions</a></li>
<li class=""><a class="" href="https://arkflow-rs.com/zh-Hans/docs/sql/special_functions">Special Functions</a></li>
</ul>
</li>
</ul>
<h4 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="data-processing">Data Processing<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#data-processing" class="hash-link" aria-label="Data Processing的直接链接" title="Data Processing的直接链接" translate="no">​</a></h4>
<ul>
<li class="">JSON processing</li>
<li class="">Protobuf encoding/decoding</li>
<li class="">Batch processing support</li>
</ul>
<h3 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="extensibility">Extensibility<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#extensibility" class="hash-link" aria-label="Extensibility的直接链接" title="Extensibility的直接链接" translate="no">​</a></h3>
<ul>
<li class="">Modular design</li>
<li class="">Easy to extend with new input, output, and processor components</li>
</ul>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="quick-start">Quick Start<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#quick-start" class="hash-link" aria-label="Quick Start的直接链接" title="Quick Start的直接链接" translate="no">​</a></h2>
<ol>
<li class="">Create a configuration file <code>config.yaml</code>:</li>
</ol>
<div class="language-yaml codeBlockContainer_z_ac theme-code-block" data-language="yaml" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><span class="af-code-lang" aria-hidden="true">yaml</span><div class="codeBlockContent_nqjx"><pre tabindex="0" class="prism-code language-yaml codeBlock_kjiA thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_yf3h"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">logging</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">level</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> info</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">streams</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">input</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"generate"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">context</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'{ "timestamp": 1625000000000, "value": 10, "sensor": "temp_1" }'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">interval</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> 1ms</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">batch_size</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1000</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">buffer</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"memory"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">capacity</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">timeout</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> 10s</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">pipeline</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">thread_num</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">4</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">processors</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"json_to_arrow"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"sql"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">query</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"SELECT sum(value) as value ,avg(value) , 0 as x FROM flow"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"arrow_to_json"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">output</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">type</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">url</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http://example.com/data"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">method</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">timeout_ms</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">90</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token key atrule" style="color:#00a4db">retry_count</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">1</span><br></span></code></pre></div></div>
<ol start="2">
<li class="">Run ArkFlow:</li>
</ol>
<div class="language-bash codeBlockContainer_z_ac theme-code-block" data-language="bash" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><span class="af-code-lang" aria-hidden="true">bash</span><div class="codeBlockContent_nqjx"><pre tabindex="0" class="prism-code language-bash codeBlock_kjiA thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_yf3h"><span class="token-line" style="color:#393A34"><span class="token plain">./arkflow -c config.yaml</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="next-steps">Next Steps<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#next-steps" class="hash-link" aria-label="Next Steps的直接链接" title="Next Steps的直接链接" translate="no">​</a></h2>
<p>We will continue to improve and optimize ArkFlow, adding more features and component support. Community contributions and feedback are welcome!</p>
<h2 class="anchor anchorTargetHideOnScrollNavbar_ruZ3" id="related-links">Related Links<a href="https://arkflow-rs.com/zh-Hans/blog/2025/04/01/v0.2.0-rc1#related-links" class="hash-link" aria-label="Related Links的直接链接" title="Related Links的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><a href="https://github.com/ark-flow/arkflow" target="_blank" rel="noopener noreferrer" class="">GitHub</a></li>
<li class=""><a href="https://github.com/ark-flow/arkflow/tree/main/examples" target="_blank" rel="noopener noreferrer" class="">Examples</a></li>
</ul>]]></content>
        <author>
            <name>Chen quan</name>
            <uri>https://github.com/chenquan</uri>
        </author>
    </entry>
</feed>