apache/nifi
DataApache NiFi is a dataflow platform for automating data routing, transformation and provenance-aware distribution.
What NiFi Does
Apache NiFi is a system for moving, transforming and monitoring data between sources and destinations. It is aimed at teams that need to integrate systems, build event-driven pipelines or distribute data with a visual interface rather than hand-written glue code. Pipelines run in a browser UI, are managed and versioned as flows, and can be clustered for higher throughput. The project also supports provenance tracking: searchable history, lineage graphs and metadata about each processing decision.
The repository is the main NiFi codebase and also contains NiFi Registry and MiNiFi components; each has its own documentation. NiFi is implemented in Java and exposes a REST API and a plugin interface for processors and controller services, with native Python processor support.
Getting Started
NiFi runs on Java 21; Python 3.10+ is only needed for optional scripting support (requirements). To build the binary distribution from source, use the Maven wrapper from the repository root:
./mvnw install -T1C -am -pl :nifi-assembly
On Windows, run mvnw.cmd instead of ./mvnw. The build produces nifi-assembly/target/nifi-*-bin.zip and an unpacked directory. Enter the unpacked distribution and start NiFi:
cd nifi-assembly/target/nifi-*-bin/nifi-*/
./bin/nifi.sh start
On Windows use nifi.cmd for system commands. Open https://localhost:8443/nifi. On first startup NiFi generates a random username and password and writes them to logs/nifi-app.log. Locate them with:
./bin/nifi.sh status
grep Generated logs/nifi-app*log
The log shows lines like Generated Username [USERNAME] and Generated Password [PASSWORD]. You can replace these credentials with:
./bin/nifi.sh set-single-user-credentials <username> <password>
Users who prefer a packaged download can get the official binary from the NiFi download page instead of building locally.
Usage Constraints
NiFi requires Java 21 for both running and development. The default local setup uses HTTPS on port 8443 with a self-signed certificate, so browsers will warn until you configure a certificate from a trusted authority for production. Startup credentials are random and stored in the application log; replace them for any shared or production deployment. Development on Windows requires the .cmd wrappers rather than the shell scripts. The source is licensed under Apache-2.0, and the distribution includes cryptographic software subject to export-control rules.
HotRepo's take
HotRepo's only recorded snapshot for this repository is a Java daily list entry dated 2026-11-05, when it ranked 15th with 6,293 stars and 2,998 forks and gained 2 stars that day. The long-running project has a large existing codebase and community footprint supported by project guides, a Maven-published API and Docker images, so its presence on that single day illustrates steady incremental interest rather than a surge. No broader trend can be inferred from one record.
Written by AI from the project's README, updated . The project's own docs are the source of truth.