{"id":23825075,"url":"https://github.com/mrhedmad/kerblam","last_synced_at":"2025-09-20T09:58:53.520Z","repository":{"id":207930810,"uuid":"720446939","full_name":"MrHedmad/kerblam","owner":"MrHedmad","description":"A Rust CLI to manage your data analysis projects in a simple and streamlined way, getting reproducibility for free.","archived":false,"fork":false,"pushed_at":"2025-08-29T07:38:30.000Z","size":3815,"stargazers_count":12,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-20T09:58:49.838Z","etag":null,"topics":["data-manager","project-management","rust-cli"],"latest_commit_sha":null,"homepage":"https://www.kerblam.dev/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrHedmad.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-18T14:13:46.000Z","updated_at":"2025-09-08T07:14:20.000Z","dependencies_parsed_at":"2024-01-21T10:23:38.384Z","dependency_job_id":"b2f537b4-090f-4c22-88cd-46d5def16dc5","html_url":"https://github.com/MrHedmad/kerblam","commit_stats":null,"previous_names":["mrhedmad/kerblam"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/MrHedmad/kerblam","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrHedmad%2Fkerblam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrHedmad%2Fkerblam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrHedmad%2Fkerblam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrHedmad%2Fkerblam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrHedmad","download_url":"https://codeload.github.com/MrHedmad/kerblam/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrHedmad%2Fkerblam/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276077925,"owners_count":25581311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-manager","project-management","rust-cli"],"created_at":"2025-01-02T11:18:12.700Z","updated_at":"2025-09-20T09:58:53.471Z","avatar_url":"https://github.com/MrHedmad.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![If you want it, Kerblam it!](https://raw.githubusercontent.com/MrHedmad/kerblam/main/docs/images/logo.png)](https://kerblam.dev/)\n\u003cdiv align=\"center\"\u003e\n\n![GitHub issues](https://img.shields.io/github/issues/MrHedmad/kerblam?style=flat-square\u0026color=blue)\n![GitHub License](https://img.shields.io/github/license/MrHedmad/kerblam?style=flat-square)\n![GitHub Repo stars](https://img.shields.io/github/stars/MrHedmad/kerblam?style=flat-square\u0026color=yellow)\n[![All Contributors](https://img.shields.io/github/all-contributors/MrHedmad/kerblam?color=ee8449\u0026style=flat-square)](CONTRIBUTING.md)\n[![DOI](https://zenodo.org/badge/720446939.svg?style=flat-square)](https://zenodo.org/doi/10.5281/zenodo.10664806)\n\n\u003c/div\u003e\n\n### Kerblam! is a **project management system** for data analysis projects.\n\nWherever you have input data that needs to be processed to obtain some output,\nKerblam! can help you out by dealing with the more tedious and repetitive parts\nof working with data for you, letting you concentrate on getting things done.\n\nKerblam! lets you work reproducibly, rigorously and quickly for big and small\nprojects alike: from routine data analysis to large, multi-workflow projects. \n\nYou can [watch a demo of what Kerblam! can do for you](https://asciinema.org/a/641448),\nor you can jump right in by [reading the quickstart guide](https://kerblam.dev/quickstart.html).\nIf you are here often, you might need [the installation command](https://kerblam.dev/install.html).\n\n## Overview\n\n\u003cdiv align=\"center\"\u003e\n\n[🚀 Read the full Documentation 🚀](https://kerblam.dev)\n|\n[✨ See usage Examples ✨](https://github.com/MrHedmad/kerblam-examples)\n\n\u003c/div\u003e\n\nThese are some of the features of Kerblam!:\n- :magic_wand: You can quickly start a new project with `kerblam new`.\n  Kerblam generates the folder structure of your project using sensible defaults,\n  similar to what [`cookiecutter`](https://github.com/cookiecutter/cookiecutter) does.\n- :rocket: Kerblam! can manage your workflows, written for different\n  workflow management systems. It chiefly prefers GNU `make`, but can manage\n  anything that can be executed via the command line.\n- :recycle: Kerblam! can hotswap input data just before your workflows start,\n  letting you work with different sets of input data *on the fly*\n  without having to touch your configuration.\n  For example, this is very useful to temporarily work with test data.\n- :gift: Kerblam! lets you run arbitrary workflows into containers, dealing\n  with volume mounting and other details for you.\n  This lets you package workflows that are not natively containerized\n  into Docker for greater reproducibility.\n  For instance, you might just need to run a very tiny data processing pipeline,\n  and don't want to deal with the verbosity of robust workflow management\n  systems like Snakemake, CWL or Nextflow.\n- :package: `kerblam package` packages your pipelines and exports a container\n  image for execution later. This leaves a tarball with all the data a\n  reproducer needs to run the analysis again, so they may do so quickly and\n  easily. The reproducer can use the reply tarball manually, or also let Kerblam!\n  un-package the project for them.\n- :package: Kerblam! can fetch remote data and save it locally, manage\n  local data and clean it up, preserving only files that must be preserved.\n  It also shows you how much local data is on the disk, how much data is remote and\n  how much disk space you can free without losing anything important.\n  It can also export the important data to share it with colleagues quickly.\n\nKerblam! is *not* and *does not want to be*:\n- :non-potable_water: A workflow runner like `snakemake`, `nextflow` or `cwltool`;\n  - It supports and helps you execute pipelines written *for* other WMS, but\n    it does not interfere from then on;\n- :recycle: A replacement for any of the tools it leverages (e.g. `git`, `docker` or `podman`,\n  `pre-commit`, etc...);\n- :mag_right: Something that insulates you from the nuances of writing good, correct\n  pipelines and container recipies.\n  Specifically, Kerblam! will never:\n  - Parse your `.gitignore`, `.dockerignore`, pipes or container recipies to check\n    for errors or potential issues;\n  - Edit code for you (with the exception of a tiny bit of wrapping to allow\n    `kerblam package` to work);\n  - Handle any errors produced by the pipelines or containers.\n\n## Opinions\nKerblam! wants to streamline and standardize data analysis projects as much as\npossible. For this reason, projects are opinionated:\n- The folder structure of your project adheres to the Kerblam! standard,\n  although you may configure it in `kerblam.toml`.\n  Read more about it [here](https://kerblam.dev/quickstart.md).\n- You use some kind of workflow management system to run your analysis.\n  - Kerblam! natively uses `make`, but nothing stops you writing\n    shell files that execute other tools, like `snakemake`.\n- You use `docker` or `podman` as your virtualisation service.\n- You use `git` as your version control system.\n- You generally execute your pipelines in a container, and not in your development\n  environment.\n- Most of your input data is remotely downloadable, especially for large and\n  bulky files.\n\nIf you don't like this setup, Kerblam! is probably not for you.\n\n\u003e [!TIP]\n\u003e If you wish to learn more on why these design choices were made, please\n\u003e take a look at [the kerblam! philosophy](html://kerblam.dev/philosophy.html).\n\n## Documentation\nThe full Kerblam! documentation is online at [kerblam.dev 🚀](https://kerblam.dev).\nPlease take a look there for more information on what Kerblam! can do.\n\nYou might find [the quickstart](https://kerblam.dev/quickstart.html) interesting.\nIt provides an overview of what Kerblam! is and does with an hands-on project.\n\n## Installation\n\n\u003cdiv align=\"center\"\u003e\n\n[✨ Read the full installation guide in the docs ✨](https://kerblam.dev/install.html)\n\n\u003c/div\u003e\n\n\u003e [!WARNING]\n\u003e Release candidates (e.g. `1.0.0-rc.x`) are not available on crates.io! Use the pre-compiled\n\u003e binaries in the releases tab, the command below or compile directly from git with\n\u003e `cargo install --git https://github.com/MrHedmad/kerblam`.\n\nIn short, use a unix-compatible OS and either: \n```bash\n# Install a prebuilt binary\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/MrHedmad/kerblam/releases/latest/download/kerblam-installer.sh | sh\n```\nor, alternatively\n```bash\n# Install from source with rustc and cargo\ncargo install kerblam\n```\nYou will need `git`, `make` and `docker` or `podman` installed for Kerblam! to work.\n\n## Contributing\nTo contribute, please take a look at [the contributing guide](CONTRIBUTING.md).\n\nCode is not the only thing that you can contribute.\nWritten a guide? Considered a new feature? Wrote some docstrings? Found a bug?\nAll of these are meaningful and important contributions.\nFor this reason, **all** contributors are listed in [the contributing guide](CONTRIBUTING.md).\n\nIf you use Kerblam! or want to add your opinion to the direction it is taking,\ntake a look at [the issues labelled with RFC](https://github.com/MrHedmad/kerblam/issues?q=is%3Aissue+is%3Aopen+label%3ARFC).\nThey are *requests for comments* where you can say your opinion on new features.\n\nThank you for taking an interest in Kerblam! Any help is greatly appreciated.\n\n## Licensing and citation\nKerblam! is licensed under the [MIT License](https://github.com/MrHedmad/kerblam/blob/main/LICENSE).\nIf you wish to cite Kerblam!, please provide a link to this repository or use\nthe Zenodo DOI [10.5281/zenodo.10664806](https://zenodo.org/doi/10.5281/zenodo.10664806)\n\n## Naming\nThis project is named after the fictitious online shop/delivery company in\n[S11E07](https://en.wikipedia.org/wiki/Kerblam!) of Doctor Who.\nKerblam! might be referred to as Kerblam!, Kerblam or Kerb!am, interchangeably, although Kerblam! is preferred.\nThe Kerblam! logo is written in the [Kwark Font](https://www.1001fonts.com/kwark-font.html)\nby [tup wanders](https://www.1001fonts.com/users/tup/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrhedmad%2Fkerblam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrhedmad%2Fkerblam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrhedmad%2Fkerblam/lists"}