Skip to content

argon-chat/KineticaFS

Repository files navigation

KineticaFS

CI Go Report Card License: AGPL v3

KineticaFS is a region-aware file lifecycle manager for S3-based storage. It tracks file usage across regions, migrates hot files closer to clients, and safely removes unused ones using reference-counting and GC.

✨ Features

  • 📦 S3-compatible: Works with any S3-compatible storage backend (AWS, MinIO, Wasabi, etc.)
  • 🌍 Region-aware: Detects file access patterns and migrates "hot" files closer to clients
  • 🧠 Smart pointers: Tracks file references in your system to prevent premature deletion
  • ♻️ Garbage collection: Removes unreferenced or expired files safely and automatically

🚀 Quick Start

Prerequisites

  • Go 1.22+
  • Make
  • Docker (optional, for containerized deployment)

Development Setup

  1. Clone the repository:

    git clone https://github.com/argon-chat/KineticaFS.git
    cd KineticaFS
  2. Setup development environment:

    make dev-setup
  3. Build and run:

    make build
    make run

The server will start on http://localhost:3000 with Swagger documentation available at /swagger/index.html.

Available Make Targets

  • make help - Show all available targets
  • make all - Run full build pipeline (format, lint, test, build, docs)
  • make build - Build the application
  • make test - Run tests with coverage
  • make lint - Run code linters
  • make format - Format code
  • make docs - Generate API documentation
  • make run - Run the server locally
  • make clean - Clean build artifacts
  • make docker-build - Build Docker image

Running with Docker

make docker-build
make docker-run

Or use the provided Docker Compose:

docker compose up -d

📈 Roadmap

  • File reference tracking API (CreateRef, DeleteRef, ListRefs) 🔥
  • File upload 🔥
  • Scylla Cassandra Support 🔥
  • Migration logic
  • Per-region heatmap tracking
  • GC for unreferenced files 🔥
  • Basic observability (logs, metrics)
  • Public and expiring file links
  • Optional TTL per reference
  • Support for batch import/export
  • Multi-tenant support
  • NATS hook for event-driven GC
  • Custom metadata indexing
  • Integration with Prometheus / Grafana
  • WASM hooks for file filters / pre-upload logic
  • Admin panel / metrics endpoint
  • K8s Operator
  • PgSql Support
  • Dotnet Client Library 🔥

📜 License

KineticaFS is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
This ensures that all improvements and deployments based on this code must remain open source.

See LICENSE for the full text.

About

Region-aware file service with smart pointers and built-in garbage collection for S3.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •