{"id":23545280,"url":"https://github.com/susonicth/csvdiff","last_synced_at":"2025-05-15T10:34:27.555Z","repository":{"id":269281172,"uuid":"906930304","full_name":"SuSonicTH/csvdiff","owner":"SuSonicTH","description":"a fast commandline diff tool for csv-files","archived":false,"fork":false,"pushed_at":"2025-05-14T12:01:43.000Z","size":1869,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-14T12:08:01.581Z","etag":null,"topics":["csv","csv-file","diff","difference","fields","header","key","primary-key","table-diff"],"latest_commit_sha":null,"homepage":"","language":"Zig","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/SuSonicTH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"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":"2024-12-22T10:42:45.000Z","updated_at":"2025-05-14T12:01:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef07cfc4-439c-461f-a281-c2c75181c6a1","html_url":"https://github.com/SuSonicTH/csvdiff","commit_stats":null,"previous_names":["susonicth/csvdiff"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuSonicTH%2Fcsvdiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuSonicTH%2Fcsvdiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuSonicTH%2Fcsvdiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuSonicTH%2Fcsvdiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuSonicTH","download_url":"https://codeload.github.com/SuSonicTH/csvdiff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254322948,"owners_count":22051688,"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":["csv","csv-file","diff","difference","fields","header","key","primary-key","table-diff"],"created_at":"2024-12-26T08:15:54.307Z","updated_at":"2025-05-15T10:34:27.547Z","avatar_url":"https://github.com/SuSonicTH.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# csvdiff\n\na fast commandline diff tool for csv-files written in zig\n\n![csvdiff demo](media/csvdiff.gif)\n\n## Functionality\n\nIt can either show the difference per line, order in the file does not matter and duplicate lines are also accounterd for, or you can specify key columns to match, which checks if the other columns are matching for matching keys. Colums can also be excluded from the check.\n\nOn default only missmatched lines are outputed with a +,-,\u003c,\u003e or ~ sign. Matched lines can be outputted as well with --outputAll and they are prefixed with '='. The added and mismatched lines are outputed in the order of the 2nd file. All missing lines from the 1st file are outputed at the end without any order.\n\n| sign | meaning                                                                                     |\n| ---- | ------------------------------------------------------------------------------------------- |\n| =    | the lines are equal in first and 2nd file (only written with --outputAll)                   |\n| -    | the line from the first file is missing in the 2nd file, i.e. was removed from the 2nd file |\n| +    | the line is in the 2nd file but not in the 1st file, i.e. was added to the 2nd file         |\n| \u003c    | the line from the 1st file was matched by key but the value columns are different           |\n| \u003e    | the line from the 2nd file was matched by key but the value columns are different           |\n| ~    | in --columnDiff mode when the key was matched but the value columns are difer               |\n\n## Build requirements\nTo build csvdiff you just need the zig compiler, which can be downloaded from [https://ziglang.org/download/](https://ziglang.org/download/) \nCurrently [zig](https://ziglang.org) 0.14.0 is supported, builds might break in never and will not work in older versions.\nThere is no installation needed, just download the package for your operating system an extract the archive and add it to your `PATH`\n\n### Windows example\nexecute following commands in a windows Command Prompt (cmd.exe)\n```cmd\ncurl https://ziglang.org/download/0.14.0/zig-windows-x86_64-0.14.0.zip --output zig-windows-x86_64-0.14.0.zip\ntar -xf zig-windows-x86_64-0.14.0.zip\ndel zig-windows-x86_64-0.14.0.zip\nmove zig-windows-x86_64-0.14.0.zip zig\nset PATH=%cd%\\zig;%PATH%\n```\n\n### Linux example\nexecute following commands in a shell\n```bash\nwget https://ziglang.org/download/0.14.0/zig-linux-x86_64-0.14.0.tar.xz\ntar -xf zig-linux-x86_64-0.14.0.tar.xz\nrm zig-linux-x86_64-0.14.0.tar.xz\nmv zig-linux-x86_64-0.14.0 zig\nexport PATH=$(pwd)/zig:$PATH\n```\n\n## Build\nIf you have zig 0.14.0 installed and on your `PATH` just cd into the directory and execute `./build.sh --test`\nThis runs the release build and all tests and saves the executable as `./bin/csvdiff`\n\nThe build.sh script needs bash, if you don't have bash you can execute the following\n```shell\nzig build -Doptimize=ReleaseFast\nzig test src/main.zig\n```\n\n## Usage\nexecute `csvdiff --help` to ouput the usage information or see [src/USAGE.txt](src/USAGE.txt)\n\n## Licence\ncsvcut is licensed under the MIT license\n\nexecute `csvdiff --version` or check [LICENSE.txt](LICENSE.txt) to read it\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusonicth%2Fcsvdiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsusonicth%2Fcsvdiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsusonicth%2Fcsvdiff/lists"}