Hey Community,

I’d like to initiate a discussion about the next release of MiNiFi C++. The
last release was in October, and I believe it is time to officially propose
our *first stable 1.0.0 release*.

I would be happy to take on RM duties for this release.

This is a major milestone for the project. The most significant highlight
is the introduction of a *stable API with a full backward compatibility
guarantee*. This API (written in C) allows developers to write processors
and controller services in C/C++, Rust, or any FFI-capable language with
guaranteed ABI compatibility.

*Notable features and improvements:*


   - *Stable C API:* A single C header API that allows any FFI-capable
   language to interoperate with MiNiFi C++ with minimal overhead. Any
   extension built using the API will load with newer MiNiFi builds without
   needing to be rebuilt
   - *C++ bindings based on Stable API: *GCP, Kafka, Llamacpp extensions (7
   processors and 1 controller service) have already been ported to use the
   stable API
   - *Rust bindings based on Stable API: *We've also implemented the stable
   API in Rust and reimagined several standard processors to showcase it.
   There are already new Rust-based extensions in PRs waiting to be merged
   - *Revamped Site-to-Site:* Added Zlib compression, optional input ports,
   output-port fixes, and robust error handling.
   - *Expanded Cloud Auth & Support:* Introduced Azure Credential
   Configuration Strategy (Managed/Workload/Default), GCP Application Default
   Credentials, and HTTP proxy controller service support for AWS, Azure, and
   GCP
   - *Python Enhancements:* Python NiFi-API processors can now run in
   parallel via @concurrentTasks
   - *Safer Configuration Handling:* Runtime configuration files are no
   longer modified directly; overrides now live safely in *.properties.d/
   - *RunLlamaCppInference* now accepts images alongside text prompts

Changes and Improvements

   - Record Reader/Writer support has been added to MQTT processors
   - AWS S3 now uses the AWS CRT S3 client for improved performance
   - RocksDB small-DB memory optimization is now enabled by default
   - C2 assets now stream directly to disk with a configurable HTTP timeout
   - Python Expression Language (EL) improvements
   - Separated state managers for schedule and trigger threads to avoid
   race conditions in stateful processors
   - Fixed deadlocks and crashes occurring during concurrent C2 flow
   updates and start/stop commands

Breaking Changes

   - SSL contexts can no longer be loaded from the flow config; users must
   use an SSL controller service
   - Azure Managed Identity Credentials property has been replaced by
the Credential
   Configuration Strategy
   - AWS S3 multipart upload behavior may differ slightly due to the switch
   to the CRT client

Removed

   - Unused and unmaintened OpenCV extension (CaptureRTSPFrame and
   MotionDetector)
   - ExecutePythonProcessor (superseded by NiFi-API Python processors)
   - Legacy bootstrap.sh and per-distro shell scripts (use Python bootstrap
   or Conan instead).

Do you agree it is time for our 1.0.0 release? Are there any blockers or
open PRs that we should definitely include in this release?

Thanks,

Martin Zink
[email protected]

Reply via email to