{"id":13419100,"url":"https://github.com/bcpierce00/unison","last_synced_at":"2026-05-01T02:02:08.470Z","repository":{"id":37561642,"uuid":"52459213","full_name":"bcpierce00/unison","owner":"bcpierce00","description":"Unison file synchronizer","archived":false,"fork":false,"pushed_at":"2026-04-28T13:47:54.000Z","size":19659,"stargazers_count":5254,"open_issues_count":103,"forks_count":270,"subscribers_count":82,"default_branch":"master","last_synced_at":"2026-04-28T15:31:48.019Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcpierce00.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-02-24T17:00:05.000Z","updated_at":"2026-04-28T13:49:36.000Z","dependencies_parsed_at":"2023-02-10T03:31:19.010Z","dependency_job_id":"7d04c9dc-eeb9-45b6-90ba-2be003ac53c2","html_url":"https://github.com/bcpierce00/unison","commit_stats":{"total_commits":1552,"total_committers":61,"mean_commits":"25.442622950819672","dds":0.6997422680412371,"last_synced_commit":"0b24bcc7f278d140e3e1a195d889e507de24c9ea"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/bcpierce00/unison","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcpierce00%2Funison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcpierce00%2Funison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcpierce00%2Funison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcpierce00%2Funison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcpierce00","download_url":"https://codeload.github.com/bcpierce00/unison/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcpierce00%2Funison/sbom","scorecard":{"id":228893,"data":{"date":"2025-08-11","repo":{"name":"github.com/bcpierce00/unison","commit":"ce6f66b048724687d716df33d5b47a4a5634b936"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.3,"checks":[{"name":"Maintained","score":10,"reason":"18 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/CI.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: invalid parameter name: .github/workflows/CI.yml:67","Info: Possibly incomplete results: error parsing shell code: invalid parameter name: .github/workflows/CI.yml:1100","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:622: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:640: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:648: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:999: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:1002: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:1026: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:1029: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:1058: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:1061: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:1109: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:1118: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:1137: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:1145: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:226: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:232: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:461: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:469: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:550: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:558: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/CI.yml:579: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/CI.yml:586: update your workflow using https://app.stepsecurity.io/secureworkflow/bcpierce00/unison/CI.yml/master?enable=pin","Info:   0 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.53.7 not signed: https://api.github.com/repos/bcpierce00/unison/releases/183592558","Warn: release artifact v2.53.6 not signed: https://api.github.com/repos/bcpierce00/unison/releases/183492286","Warn: release artifact v2.53.5 not signed: https://api.github.com/repos/bcpierce00/unison/releases/154496946","Warn: release artifact v2.53.4 not signed: https://api.github.com/repos/bcpierce00/unison/releases/142636397","Warn: release artifact v2.53.3 not signed: https://api.github.com/repos/bcpierce00/unison/releases/101197144","Warn: release artifact v2.53.7 does not have provenance: https://api.github.com/repos/bcpierce00/unison/releases/183592558","Warn: release artifact v2.53.6 does not have provenance: https://api.github.com/repos/bcpierce00/unison/releases/183492286","Warn: release artifact v2.53.5 does not have provenance: https://api.github.com/repos/bcpierce00/unison/releases/154496946","Warn: release artifact v2.53.4 does not have provenance: https://api.github.com/repos/bcpierce00/unison/releases/142636397","Warn: release artifact v2.53.3 does not have provenance: https://api.github.com/repos/bcpierce00/unison/releases/101197144"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T04:25:26.021Z","repository_id":37561642,"created_at":"2025-08-17T04:25:26.021Z","updated_at":"2025-08-17T04:25:26.021Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32482460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":[],"created_at":"2024-07-30T22:01:11.334Z","updated_at":"2026-05-01T02:02:08.458Z","avatar_url":"https://github.com/bcpierce00.png","language":"OCaml","funding_links":[],"categories":["OCaml","HarmonyOS","🌐 Fully Distributed / P2P by Default","Media Tools","others"],"sub_categories":["Windows Manager","🧱 Base Synchronization Tools / Protocols","Independent \u0026 Hobbyist Projects"],"readme":"![Unison](icons/unison.png)\n\n# Unison File Synchronizer\n\n## Meta\n\n***Please read this entire README and\nhttps://github.com/bcpierce00/unison/wiki/Reporting-Bugs-and-Feature-Requests\nbefore creating or commenting on a github issue.***\n\n***TL;DR: Do not ask questions or ask for help in issues.  Upgrade to the latest release.***\n\nPlease also read https://github.com/bcpierce00/unison/wiki before\ninteracting with the issue tracker or asking for help.\n\n## About\n\nUnison is a file-synchronization tool for POSIX-compliant systems\n(e.g. *BSD, GNU/Linux, macOS) and Windows.  It allows two replicas of a\ncollection of files and directories to be stored on different hosts\n(or different disks on the same host), modified separately, and then\nbrought up to date by propagating the changes in each replica to the\nother.\n\nUnison has been in use for over 25 years and many people use it to\nsynchronize data they care about.\n\nFeatures:\n\n * Unison works across platforms, allowing you to synchronize a\n   Windows laptop with a Unix server, for example.\n\n * Unlike simple mirroring or backup utilities, Unison can deal with\n   updates to both replicas of a distributed directory\n   structure. Updates that do not conflict can be propagated\n   automatically. Conflicting updates are detected and displayed.\n\n * Unlike many network filesystems, Unison copies data so that\n   already-synchronized data can be read and written while offline.\n\n * Unlike most distributed filesystems, Unison is a user-level program\n   that simply uses normal systems calls: there is no need to modify\n   the kernel, to have superuser privileges on either host, or to have\n   a FUSE implementation.\n\n * Unison works between any pair of machines connected to the\n   internet, typically communicating over ssh, but also directly over\n   TCP.  It is careful with network bandwidth, and runs well over slow\n   links. Transfers of small updates to large files are optimized using\n   a compression protocol similar to rsync.\n\n * Unison is resilient to failure. It is careful to leave the replicas\n   and its own private structures in a sensible state at all times,\n   even in case of abnormal termination or communication failures.\n\n * Unison can run in \"repeat\" mode with a filesystem monitor, so that\n   changes are synchronized soon after they happen.\n\n * Unison has a clear and precise specification.\n\n * Unison is Free; full source code is available under the GNU Public\n   License, Version 3.\n\n## Contributing\n\nNote that only a very small number of people are actively working on\nmaintaining unison.  An estimate is 2.5 people and 0.1 Full-Time\nEquivalents.  This has a substantial impact on the handling of bug\nreports and enhancement reports.  Help in terms of high-quality bug\nreports, fixes, and proposed changes is very welcome.  Help in\nanswering mailinglist questions is also welcome.  Please do not answer\nquestions asked in the bug tracker, which is contrary to bug tracker\nusage guidance.\n\nSee `CONTRIBUTING.md` for a longer discussion.\n\n## Community\n\nUnison activity is now centered on the two [Unison\nmailinglists](https://github.com/bcpierce00/unison/wiki/Mailing-Lists)\nfor discussion and [Unison's github\npage](https://github.com/bcpierce00/unison/) for code, issues and a\nwiki.\n\nThe `unison-users@` list is appropriate for asking for help.  The\n`unison-hackers@` list is appropriate for discussions where\nparticipants might be reading source code in order to inform the\ndiscussion.\n\nA no-longer-maintained FAQ can be found at: the [old UPenn\nsite](http://www.cis.upenn.edu/~bcpierce/unison).\n\n## Getting Unison\n\nThe Unison project provides Unison as source code.  Many packaging\nsystems (including GNU/Linux distributions) provide binary packages of\nUnison.  Results from Continuous Integration builds, while performed\nfor the purposes of testing, are available for use on a limited set of\nplatforms.\n\nSee the [top-level wiki\npage](https://github.com/bcpierce00/unison/wiki) for a variety of\ninformation, including how to access Unison documentation.\n\nSee the [building instructions](INSTALL.md), or read the CI\nrecipes.\n\nYou should use the most recent formal release, or a newer version from\ngit.  Earlier versions are no longer maintained, and bug reports are\nnot accepted about these versions.  This is true even though many\npackaging systems (including GNU/Linux distributions) continue to have\n2.51 or even 2.48.  The master branch in git historically has been\nquite stable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcpierce00%2Funison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcpierce00%2Funison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcpierce00%2Funison/lists"}