Xv

Xvc – CLI tool to manage data and pipelines in Rust (+Python bindings)

Hacker News

Xvc – CLI tool to manage data and pipelines in Rust (+Python bindings)

Xvc is a data and files management tool on top of Git. It allows you to track large and numerous data files next to your code and notebooks. You can also configure remote storages in S3 and compatible services (like Minio, DO Spaces, R2, Wasabi) or Rsync connections over SSH. You can send, receive and share these data files selectively. You can create signed URLs on S3-compatible services for your files that are valid for a limited time. Xvc can also run your pipelines defined by steps (stages) that can be invalidated by various kinds of dependencies, like files, globs, URLs or regexes. If you have a directory with thousands of files that you preprocess and only one of these changes, you can define a command to run only for the changed file (or changed lines in a CSV file). It runs these steps in parallel if there are no dependencies between each other. It can be used for general software development as well. You can keep non-code artifacts along with the code and define dependencies. It can be used for deployment via Git. It's small enough to be used on CI. All features can be used from Python and Jupyter notebooks. User docs are in [3] and development docs are in [4]. Python bindings and example usage are in [2]. You can install for CLI with `cargo install xvc` and for Python with `pip install xvc`. Data management features are similar to DVC, git-annex, and Git LFS, but Xvc doesn't depend on Git directly. It runs the git commands on your behalf but this can be disabled and if needs arise and popularize, another VCS can be used. Pipeline features are similar to DVC's but have more granularity and flexibility. I experimented with ECS at the core of software. Modeling the software using entities and components attached to them is, in my experience, much more productive, flexible and maintainable than OOP. There is a state machine to run multiple possibly interdependent processes in the pipeline. I had to write a directory walker with gitignore, a file watcher to track file metadata at the OS level when a pipeline is running and even experiment with documenting the software with dialogues between hare and tortoise. The larger experiment was, of course, whether I could do this. It's an ambitious project but it's my daily habit now and development in Rust feels nice. I feel as if I'm meeting with my friend in the morning. I started Xvc as a solo project after leaving my work on DVC's technical docs. (See [5] for a brief history. See [6] for similarities and differences from it.) I still don't think it's ready for prime time yet but this is HN and I wanted to share. My inner voice says 'you shouldn't release before writing all those Python tests' but I told him it's my birthday and it's nice to release something on your birthday. I'm open to any feedback, questions, and suggestions. I added boxes for feedback and questions to the docs. I don't accept any non-trivial code contributions at the moment. I may change the license to a more "business-friendly" one partially (for just xvc-ecs or xvc-walker crates, for example) and don't want to feel bad about it. In any case, it will be free and open for human individuals and it doesn't track anything about you. I don't even track the number of visitors or downloads. I only know when someone stars the repo. I plan to add more features, like experiment tracking, adding annotations to binary files and using these in file operations, and a server to manage your data repositories and maybe a GUI for all these. I don't intend to pollute my priorities by trying to build a business around it. My priority is development, writing, and keeping my fellow hackers happy. Cheers from Istanbul. [0]: https://xvc.dev [1]: https://github.com/iesahin/xvc [2]: https://github.com/iesahin/xvc.py [3]: https://docs.xvc.dev [4]: https://docs.rs/xvc [5]: https://emresahin.net/a-brief-history-of-xvc/ [6]: https://docs.xvc.dev/start/from-dvc

Share card

Actual performance

5points
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Indie HackersFits the IH revenue-focused audience · Strong signals: started, para, compatible · Missing: supports, reddit linkedin, podcasting
86%86% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Product HuntOn track for Day 1 leaderboard · Strong signals: mac, model, user · Missing: agents, macos, agent
83%83% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: pipe, io · Missing: https docs, excited, just released
51%51% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
TrustMRRLess likely to generate early MRR · Strong signals: para · Missing: mobile apps, ios, personal
40%40% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
AppSumoMay struggle as an AppSumo deal · Strong signals: friendly · Missing: plus, platform, intuitive
30%30% predicted probability of success on AppSumo, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Missing: arr, mrr, revenue
15%15% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

A
A CLI tool to manage your time in Rust37%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

A CLI tool to manage your time in Rust

Hacker News2
Ma
Made a Metabase CLI tool in Rust.42%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Made a Metabase CLI tool in Rust.

Hacker News1
ga
gam – CLI tool to manage permanent aliases36%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

gam – CLI tool to manage permanent aliases

Hacker News3
a
a Rust based CLI tool 'imgcatr' for displaying images33%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

a Rust based CLI tool 'imgcatr' for displaying images

Hacker News129
Cr
CraftQL – A Rust CLI tool for GraphQL schemas with graphviz output57%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

CraftQL – A Rust CLI tool for GraphQL schemas with graphviz output

Hacker News4
Fl
Flupy – Data Pipelines in Python55%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Flupy – Data Pipelines in Python

Hacker News8
CL
CLI tool to find and configure RaspberryPis over the LAN45%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

CLI tool to find and configure RaspberryPis over the LAN

Hacker News5
Wd
Wd, CLI tool for WebDriver39%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Wd, CLI tool for WebDriver

Hacker News1
Du
Dutyme – CLI tool to assign PagerDuty on-call to you while operation28%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Dutyme – CLI tool to assign PagerDuty on-call to you while operation

Hacker News3
CL
CLI Tool for BigQuery Migrations30%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

CLI Tool for BigQuery Migrations

Hacker News1