{"id":40395258,"url":"https://github.com/refaktor/rye-fyne","last_synced_at":"2026-01-20T13:03:54.435Z","repository":{"id":223362584,"uuid":"760096633","full_name":"refaktor/rye-fyne","owner":"refaktor","description":"Fyne GUI library with Rye language.","archived":false,"fork":false,"pushed_at":"2025-11-29T12:43:37.000Z","size":5903,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-27T04:55:13.186Z","etag":null,"topics":["gameengine","gui","language","rebol"],"latest_commit_sha":null,"homepage":"https://ryelang.org","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/refaktor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2024-02-19T19:24:44.000Z","updated_at":"2025-11-29T12:36:30.000Z","dependencies_parsed_at":"2024-04-05T07:31:06.173Z","dependency_job_id":"9dc7e309-3ae7-49bb-beaa-3f0ec076eb04","html_url":"https://github.com/refaktor/rye-fyne","commit_stats":null,"previous_names":["refaktor/rye-front","refaktor/rye-fyne"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/refaktor/rye-fyne","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refaktor%2Frye-fyne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refaktor%2Frye-fyne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refaktor%2Frye-fyne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refaktor%2Frye-fyne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/refaktor","download_url":"https://codeload.github.com/refaktor/rye-fyne/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/refaktor%2Frye-fyne/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["gameengine","gui","language","rebol"],"created_at":"2026-01-20T13:03:54.318Z","updated_at":"2026-01-20T13:03:54.427Z","avatar_url":"https://github.com/refaktor.png","language":"Go","readme":"# Rye-Fyne: GUI Programming with Rye Language\n\n![Rye-Fyne](https://github.com/refaktor/rye-fyne/blob/main/image.png?raw=true)\n\nRye-Fyne brings the power of [Fyne](https://fyne.io) GUI toolkit to the [Rye programming language](https://ryelang.org/). Build cross-platform desktop applications with Rye's expressive syntax and Fyne's modern widgets.\n\nSee 15 increasingly involved but compact **examples with screenshots** on [**Rye Cookbook**](https://ryelang.org/cookbook/rye-fyne/examples-2/).\n\n### Download\n\nDownload pre-built binaries from [GitHub Releases](https://github.com/refaktor/rye-fyne/releases/latest):\n* **Linux**: `rye-fyne-linux-amd64.tar.gz`\n* **macOS**: `rye-fyne-macos-amd64.tar.gz`\n* **Windows**: `rye-fyne.exe`\n\n### Building from Source\n\nYou need [Go](https://go.dev/) installed on your system.\n\n```bash\n# Clone the repository\ngit clone https://github.com/refaktor/rye-fyne.git\ncd rye-fyne\n\n# for mac and windows\ngo tool ryegen\n\n# Build the project\ngo build\n\n# Run the example\n./rye-fyne examples/01-hello-world.rye\n```\n\n## Example Application\n\nThe `example.rye` file demonstrates a comprehensive GUI application with various widgets:\n\n```rye\nfyne: import\\go \"fyne\"\napp: import\\go \"fyne/app\"\nwidget: import\\go \"fyne/widget\"\ndialog: import\\go \"fyne/dialog\"\ncontainer: import\\go \"fyne/container\"\ntheme: import\\go \"fyne/theme\"\n\na: app/new\nw: a .window \"Hello, world!\"\n\n; Menu system with file operations and settings\nw .set-main-menu fyne/main-menu [\n    fyne/menu \"File\" [\n        fyne/menu-item \"Open\" does {\n            dialog/show-file-open fn { r err } {\n                either r .is-nil {\n                    if not err .is-nil { print err }\n                } {\n                    print \"Opened file: \" ++ r .uri .string\n                    r .close\n                }\n            } w\n        } |icon! theme/file-icon\n    ]\n    fyne/menu \"Settings\" [\n        fyne/menu-item \"Preferences\" does { }\n            |icon! theme/settings-icon\n    ]\n]\n\n; Live clock that updates every second\nclock: widget/label \"\"\ngo does {\n    forever {\n        fyne/do does { clock .set-text now .to-string }\n        sleep 1 .seconds\n    }\n}\n\n; Main application layout with various widgets\nw .set-content container/border\n    container/vbox [\n        widget/label \"Hello!\"\n        do {\n            se: widget/select-entry [ \"A\" \"B\" ]\n            se .set-text \"A\"\n            se\n        }\n        do {\n            p: widget/progress-bar-infinite\n            p .start\n            p\n        }\n        widget/button \"Say hi\" does {\n            dialog/show-information \"Hello!\" \"You clicked the button\" w\n        }\n        clock\n    ]\n    nil nil nil\n    [ widget/list\n        does { 1000 }\n        does { widget/label \"Hi\" }\n        fn { id lab } { lab .set-text \"Entry no. \" ++ id .to-string }\n    ]\n\nw .show-and-run\n```\n\nThis example showcases:\n- **Menu System**: File and Settings menus with icons\n- **Dialogs**: File open dialog and information dialogs\n- **Widgets**: Labels, buttons, select entries, progress bars, lists\n- **Layouts**: Border and VBox container layouts\n- **Live Updates**: A clock that updates in real-time\n- **Event Handling**: Button clicks and menu interactions\n\n## Features\n\n### Available Widgets\n- Labels, buttons, entries, and text areas\n- Progress bars (determinate and indeterminate)\n- Lists, tables, and trees\n- Select entries and combo boxes\n- Sliders, check boxes, and radio buttons\n- And many more Fyne widgets\n\n### Layout Containers\n- Border, VBox, HBox layouts\n- Grid and form layouts\n- Split containers and accordions\n- Tabs and scroll containers\n\n### Dialogs and Menus\n- File dialogs (open, save)\n- Information, confirmation, and error dialogs\n- Menu bars with icons and shortcuts\n- Context menus\n\n## Interactive Development\n\nStart the Rye console for interactive GUI development:\n\n```bash\n./rye-fyne\n```\n\n```rye\n; Quick GUI creation in the console\nrye\u003e fyne: import\\go \"fyne\"\nrye\u003e app: import\\go \"fyne/app\" \nrye\u003e widget: import\\go \"fyne/widget\"\nrye\u003e container: import\\go \"fyne/container\"\n\nrye\u003e a: app/new\nrye\u003e w: a .window \"Quick Demo\"\nrye\u003e w .set-content widget/button \"Click me!\" does { print \"Hello from Rye!\" }\nrye\u003e w .show-and-run\n```\n\n## Cross generation\n\nWith ryegen bindings have to be generated per OS and Arch. If you don't have access to all of them you can cross-generate to some.\n\n### Android\n\n```\n# generate bindings\n../ryegen/ryegen -goarch arm64 -goos android\n\n# build\nGOOS=android GOARCH=arm64 go build\n\n# fyne package APK\nfyne package -os android/arm64 -appID com.refaktorlabs.ryefynehello -icon Icon.png -appVersion 0.0.1 -tags \"embed_main\"\n\n# rye-asist (this whole interface will change)\nryec build\\\\fyne\\\\apk\n```\n\n\n## Resources\n\n- **[Rye Language](https://github.com/refaktor/rye)** - The core Rye language\n- **[Rye Website](https://ryelang.org/)** - Documentation and tutorials  \n- **[Rye Cookbook](https://ryelang.org/cookbook/rye-fyne/examples/)** - GUI examples and recipes\n- **[Fyne Documentation](https://fyne.io/)** - Fyne GUI toolkit documentation\n- **[Reddit Community](https://reddit.com/r/ryelang/)** - Join the discussion\n\n## What is Rye?\n\nRye is a high-level, dynamic programming language inspired by Rebol, Factor, and Go. It emphasizes:\n- **Expressive Syntax**: Clean, readable code that's easy to write and understand\n- **Interactive Development**: REPL-driven programming with live feedback\n- **Go Integration**: Easy access to Go libraries and embedding in Go applications\n- **Cross-platform**: Build applications that run on Windows, macOS, and Linux\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues, feature requests, or pull requests on GitHub.\n\n## License\n\nThis project is open source. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefaktor%2Frye-fyne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frefaktor%2Frye-fyne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frefaktor%2Frye-fyne/lists"}