6 releases
new 0.1.6 | May 23, 2025 |
---|---|
0.1.5 | May 23, 2025 |
0.1.0 | Apr 21, 2025 |
#417 in Database interfaces
472 downloads per month
37KB
760 lines
fimo (File-Mongo) CLI Toolkit
fimo is a modular, high-performance command-line toolkit written in Rust for importing, transforming, and synchronizing structured data with MongoDB. Built for developers, data engineers, and migration tasks, it enables robust data pipelines directly from the terminal.
โจ What is fimo?
At its core, fimo
is a collection of CLI utilities for MongoDB workflows. Each binary targets a specific use case, but they all share a fast, extensible foundation with strong type safety, async performance, and developer-friendly configuration.
๐ Available Tools
Binary | Description |
---|---|
fimo-csv |
Import CSV files into MongoDB using YAML-based field mappings and templates |
fimo-sync |
Sync MongoDB documents across collections or environments incrementally |
๐งฐ Use Cases
- ๐ Keep environments in sync using
fimo-sync
(e.g., staging โ production) - ๐ฅ Load flat files using
fimo-csv
for initial imports or ongoing feeds - โ๏ธ Define repeatable transformations using Jinja2-style templates
- ๐งช Perform safe, resumable batch operations using resume tokens or values
๐ฆ Installation
Install from crates.io:
cargo install fimo
Or build from source:
git clone https://github.com/fimo-org/fimo.git
cd fimo
cargo build --release
๐ Project Layout
fimo/
โโโ src/
โ โโโ bin/
โ โโโ fimo-csv/ # fimo-csv binary: CSV to MongoDB importer
โ โโโ fimo-sync/ # fimo-sync binary: document sync engine
โโโ examples/ # Example input data and config
โโโ tests/ # Test harnesses
โโโ Cargo.toml # Multi-binary manifest
๐ Tool Docs
fimo-csv
- High-throughput CSV importer
- YAML mapping with full BSON type support
- Supports transformations via MiniJinja
- Ideal for ETL and data warehousing
๐ View fimo-csv
documentation โ
fimo-sync
- Real-time or batch sync across MongoDB collections
- Change stream and field-based sync modes
- Resume-safe with
_id
disambiguation - Optional health file support for watchdogs
๐ View fimo-sync
documentation โ
๐งฉ Coming Soon
fimo-archive
A new utility designed to move large volumes of archived MongoDB documents to external storage such as S3, Azure Blob, or GCS. It will support:
- BSON/Extended JSON export
- Filtered and range-based archival (e.g., by date)
- Compatibility with cold storage solutions
- Future support for rehydration into live collections
๐ Why fimo?
- ๐ Rust-powered performance
- ๐ Typed BSON support
- ๐ง Intelligent resume logic
- ๐ ๏ธ Modular CLI design
- ๐งช Tested on large-scale datasets
Whether you're importing 10,000 rows or syncing millions of documents, fimo
helps you do it cleanly, reliably, and efficiently.
๐ License
MIT ยฉ fimo.org โ Built with โค๏ธ in Rust
Dependencies
~19โ30MB
~463K SLoC