{"id":28075202,"url":"https://github.com/manishjalui11/csv-diff","last_synced_at":"2025-10-28T16:36:32.221Z","repository":{"id":292717590,"uuid":"981620705","full_name":"manishjalui11/csv-diff","owner":"manishjalui11","description":"\u003e A fast and flexible command-line tool to compare CSV files using composite keys and generate clean, structured diffs.","archived":false,"fork":false,"pushed_at":"2025-05-11T19:44:36.000Z","size":16,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T00:55:12.716Z","etag":null,"topics":["cli","command-line-tool","composite-key","csv","csv-comparison","csv-diff","data-comparison","data-diff","data-engineering","diff-tool","go","go-cli","golang","linux","macos","open-source","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","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/manishjalui11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-11T14:22:53.000Z","updated_at":"2025-05-11T19:47:13.000Z","dependencies_parsed_at":"2025-05-11T19:33:58.387Z","dependency_job_id":"f7021c2a-acde-4a22-adf6-8b6fcbccc640","html_url":"https://github.com/manishjalui11/csv-diff","commit_stats":null,"previous_names":["manishjalui11/csv-diff"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishjalui11%2Fcsv-diff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishjalui11%2Fcsv-diff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishjalui11%2Fcsv-diff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishjalui11%2Fcsv-diff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manishjalui11","download_url":"https://codeload.github.com/manishjalui11/csv-diff/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253850891,"owners_count":21973672,"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","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":["cli","command-line-tool","composite-key","csv","csv-comparison","csv-diff","data-comparison","data-diff","data-engineering","diff-tool","go","go-cli","golang","linux","macos","open-source","windows"],"created_at":"2025-05-13T00:55:17.894Z","updated_at":"2025-10-28T16:36:32.104Z","avatar_url":"https://github.com/manishjalui11.png","language":"Go","readme":"# CSV-DIFF\n\n**CSV-DIFF** is a powerful and flexible CLI tool written in Go for comparing two CSV files. It highlights added,\ndeleted, updated, and reordered rows based on configurable composite keys. It’s useful for tracking changes in tabular\ndata like exports from databases, spreadsheets, or APIs.\n\n---\n\n## 📑 Table of Contents\n\n- [Features](#-features)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [Makefile](#-makefile)\n- [License](#-license)\n- [Contributing](#-contributing)\n- [Code of Conduct](#-code-of-conduct)\n\n---\n\n## 📌 Features\n\n- Compare two CSV files and identify:\n    - Added, deleted, updated, or reordered rows\n- Use composite keys to match rows across files\n- Output results in JSON or CSV\n- Filter output to focus on specific change types\n- Optionally include unchanged rows\n- Easy to use via CLI flags\n\n---\n\n## 🛠️ Installation\n\n### Install via `go install`\n\nMake sure you have [Go](https://golang.org/dl/) installed.\n\n```bash\ngo install github.com/manishjalui11/csv-diff@latest\n```\n\nThis will install csv-diff into your $GOPATH/bin.\n\n---\n\n## 🚀 Usage\n\n```bash\ncsv-diff [flags] \u003coriginal.csv\u003e \u003cnew.csv\u003e\n```\n\n### Example\n\n```bash\ncsv-diff -k 0,1 -s json -o diff.json file_old.csv file_new.csv\n```\n\n### CLI Flags\n\n| Flag                | Short | Description                                                                   |\n|---------------------|-------|-------------------------------------------------------------------------------|\n| --save              | -s    | Format to save output (json or csv)                                           |\n| --output            | -o    | Filename to save changes                                                      |\n| --key               | -k    | Comma-separated list of column indexes to use as a composite key (default: 0) |\n| --show-changes      | -c    | Show detailed changes                                                         |\n| --include-unchanged | -z    | Include unchanged rows in the output                                          |\n| --filter-added      | -a    | Only show added rows                                                          |\n| --filter-deleted    | -d    | Only show deleted rows                                                        |\n| --filter-updated    | -u    | Only show updated rows                                                        |\n| --filter-reordered  | -r    | Only show reordered rows                                                      |\n| --help              | -h    | Show usage/help information                                                   |\n| --version           | -v    | Show app version                                                              |\n\n---\n\n## 🧰 Makefile\nThe project includes a Makefile to simplify common development tasks.\n\nCommon Targets\n```bash\nmake build        # Build the csv-diff binary\nmake test         # Run tests\nmake test-race    # Run tests with race detection and coverage\nmake run          # Build and run csv-diff with sample files\nmake clean        # Remove built binaries\nmake help         # Show available targets\n```\nYou can always run make help to list all available targets.\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Whether it's bug fixes, new features, or improvements, your help is\nappreciated.\n\nTo get started:\n\n1. **Fork the repository** and create your branch (`git checkout -b feature-branch`).\n2. **Make your changes** and test them thoroughly.\n3. **Commit your changes** with clear and concise commit messages.\n4. **Push to your fork** (`git push origin feature-branch`).\n5. **Open a Pull Request** describing your changes and why they're useful.\n\nIf you encounter any issues or have ideas for new features,\nplease [open an issue](https://github.com/manishjalui11/csv-diff/issues) or submit a feature request.\n\nBy contributing, you agree to follow the project's coding guidelines and adhere to our code of conduct.\n\nThank you for being awesome and helping improve the project! 🙌\n\n---\n\n## 📜 Code of Conduct\n\nWe are committed to creating a welcoming environment for all contributors. Please review and follow\nour [Code of Conduct](./CODE_OF_CONDUCT.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanishjalui11%2Fcsv-diff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanishjalui11%2Fcsv-diff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanishjalui11%2Fcsv-diff/lists"}