docs: initial comparison document

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic50cc37d50c50ef279f65e87011d252f6a6a6964
This commit is contained in:
raf 2026-02-07 21:01:00 +03:00
commit 593203dcd0
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF

41
docs/COMPARISON.md Normal file
View file

@ -0,0 +1,41 @@
<!--markdownlint-disable MD013-->
# FC vs Hydra
FC is not exactly a competitor, but a direct replacement to Hydra with a limited
set of features that are prioritized. While FC hopes to be a complete
replacement, not everything can be considered in-scope for a team of FOSS
developers without funding. _Should_ you create any issues, your feature may or
may not be implemented depending on our own needs. Please keep that in mind.
Below document contains a "feature matrix" of concepts and features that we've
decided to think about. Not all of them will be fully implemented (i.e., we are
a-okay with being less powerful in some regards) but FC _does_ aim to be better
than Hydra in the long term, through different means; reliability, UX and
performance.
## Executive Summary
FC currently implements more or less 50% of Hydra's core features, and has
various improvements over Hydra's architecture. As of writing, some gaps (such
as the plugin architecture, VCS diversity and notification integrations) remain.
### Strengths
- Modern Rust codebase with better error handling
- Simpler, more maintainable architecture (5 Rust crates vs Perl & C++ monolith)
- Better API-first design with proper REST structure
- User management with argon2 password hashing and granular RBAC
- Cleaner database schema (16 tables vs 70+)
- Better Nix Flake support from day one
- Improved & tested declarative jobsets
### Weaknesses
- Limited VCS support (Git only in FC vs 6 types in Hydra)
- No plugin architecture for extensibility
- Missing several notification integrations (Slack, BitBucket, etc.)
- No declarative project specification (coming soon)
- No coverage/build metrics collection
TODO: add a better comparison matrix