{"id":13413137,"url":"https://github.com/richardwilkes/unison","last_synced_at":"2026-01-03T22:57:51.009Z","repository":{"id":41493624,"uuid":"405738120","full_name":"richardwilkes/unison","owner":"richardwilkes","description":"A unified graphical user experience toolkit for Go desktop applications","archived":false,"fork":false,"pushed_at":"2024-05-01T00:48:10.000Z","size":156944,"stargazers_count":149,"open_issues_count":4,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-05-02T02:06:49.850Z","etag":null,"topics":["desktop","golang","gui","linux","macos","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richardwilkes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["richardwilkes"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-09-12T19:45:55.000Z","updated_at":"2024-06-02T20:21:09.209Z","dependencies_parsed_at":"2024-03-30T06:33:03.275Z","dependency_job_id":"2357f144-9598-461e-b0f2-d98c71f14c65","html_url":"https://github.com/richardwilkes/unison","commit_stats":null,"previous_names":[],"tags_count":146,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardwilkes%2Funison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardwilkes%2Funison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardwilkes%2Funison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richardwilkes%2Funison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richardwilkes","download_url":"https://codeload.github.com/richardwilkes/unison/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243635276,"owners_count":20322909,"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":["desktop","golang","gui","linux","macos","windows"],"created_at":"2024-07-30T20:01:33.972Z","updated_at":"2026-01-03T22:57:51.003Z","avatar_url":"https://github.com/richardwilkes.png","language":"Go","funding_links":["https://github.com/sponsors/richardwilkes"],"categories":["GUI"],"sub_categories":["Search and Analytic Databases","检索及分析资料库"],"readme":"# Unison\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/richardwilkes/unison.svg)](https://pkg.go.dev/github.com/richardwilkes/unison)\n[![Go Report Card](https://goreportcard.com/badge/github.com/richardwilkes/unison)](https://goreportcard.com/report/github.com/richardwilkes/unison)\n\nA unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported.\n\n## Required setup\n\nUnison is built upon [glfw](https://github.com/go-gl/glfw). As such, it requires some setup prior to being able to build\ncorrectly:\n\n* On macOS, you need Xcode or Command Line Tools for Xcode (`xcode-select --install`) for required headers and\n  libraries.\n* On Ubuntu/Debian-like Linux distributions, you need `libgl1-mesa-dev` and `xorg-dev` packages.\n* On CentOS/Fedora-like Linux distributions, you need `libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel\n  mesa-libGL-devel libXi-devel libXxf86vm-devel` packages.\n* On Windows, you need [tdm-gcc](https://jmeubank.github.io/tdm-gcc/download/) as well as [git-scm](https://git-scm.com)\n  for its bash shell.\n* See [compilation dependencies](http://www.glfw.org/docs/latest/compile.html#compile_deps) for full details.\n\nThis version of Unison was built using Go 1.24. It has been compiled under many earlier versions of Go in the past, but\nonly Go 1.24+ will be considered as I make further changes.\n\n## Example\n\nAn example application can be found in the `cmd/example` directory:\n\n```sh\ngo run ./cmd/example/main.go\n```\n\n## Notes\n\nUnison was developed with the needs of my personal projects in mind, so may not be a good fit for your particular needs.\nI'm open to suggestions on ways to improve the code and will happily consider Pull Requests with bug fixes or feature\nadditions.\n\n### Compatibility\n\nUnison is very much a work in progress. As such, it is likely to have breaking changes. To reflect this, a version\nnumber of 0.x.x will be in use until such time that I'm comfortable locking things down to ensure compatibility between\nreleases. Please keep this in mind when making the decision to use Unison in your own code.\n\n### Look \u0026 Feel\n\nUnison defines its own look and feel for widgets and will likely be adjusted over time. This was done to provide as much\nconsistency as possible between all supported platforms. It also side-steps issues where a given platform itself has no\nor poorly defined standards. Colors, fonts, spacing, how the widgets behave, and more are customizable, so if you are\nfeeling particularly ambitious, you could create your own theming that matches a given platform.\n\n### Organization\n\nThere are a large number of Go source files in a single, top-level package. Unison didn't start out this way, but user\nexperience code tends to need to have its tentacles in many places, and the logical separations I made kept hindering\nthe ability to do things. Ultimately, I made the decision to collapse nearly everything into a single package to\nsimplify development and greatly reduce the overall complexity of things.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardwilkes%2Funison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichardwilkes%2Funison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichardwilkes%2Funison/lists"}