{"id":13453804,"url":"https://github.com/ryo33/egui_cable","last_synced_at":"2025-10-05T21:04:51.366Z","repository":{"id":37277334,"uuid":"494951126","full_name":"ryo33/egui_cable","owner":"ryo33","description":"Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API","archived":false,"fork":false,"pushed_at":"2024-11-07T23:14:33.000Z","size":203,"stargazers_count":128,"open_issues_count":8,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-15T13:16:33.478Z","etag":null,"topics":["data-flow-diagram","data-oriented","egui","node-based"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryo33.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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":"ryo33"}},"created_at":"2022-05-22T03:40:01.000Z","updated_at":"2025-03-01T19:07:29.000Z","dependencies_parsed_at":"2022-08-08T19:31:03.569Z","dependency_job_id":"423f5c43-96c2-4864-b506-4b8b30d2825d","html_url":"https://github.com/ryo33/egui_cable","commit_stats":{"total_commits":61,"total_committers":2,"mean_commits":30.5,"dds":"0.21311475409836067","last_synced_commit":"696cb9a52cac55b2d2ce6ba1aa7a0b68a7874cfe"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryo33%2Fegui_cable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryo33%2Fegui_cable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryo33%2Fegui_cable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryo33%2Fegui_cable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryo33","download_url":"https://codeload.github.com/ryo33/egui_cable/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245194313,"owners_count":20575739,"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":["data-flow-diagram","data-oriented","egui","node-based"],"created_at":"2024-07-31T08:00:47.718Z","updated_at":"2025-10-05T21:04:51.357Z","avatar_url":"https://github.com/ryo33.png","language":"Rust","funding_links":["https://github.com/sponsors/ryo33"],"categories":["Widgets","Libraries"],"sub_categories":[],"readme":"# egui_cable\n\n[![GitHub](https://img.shields.io/badge/GitHub-ryo33/egui__cable-222222)](https://github.com/ryo33/egui_cable)\n![MIT/Apache 2.0](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)\n[![Crates.io](https://img.shields.io/crates/v/egui_cable)](https://crates.io/crates/egui_cable)\n[![docs.rs](https://img.shields.io/docsrs/egui_cable)](https://docs.rs/egui_cable)\n\nA generic and extensible data-oriented widget for connecting ports by cables.\n\nNice to use for:\n\n- analog synthesizer-like UI\n- node-based UI\n\n## Versions\n\n| egui | egui_cable |\n| ---- | ---------- |\n| 0.27 | 0.5        |\n| 0.28 | 0.6        |\n| 0.29 | 0.7        |\n| 0.30 | 0.8        |\n| 0.31 | 0.9        |\n\n## Features\n\n- [x] connect ports by data\n- [x] dynamic connect and disconnect\n- [x] lock connection\n- [x] custom plug widget\n- [x] custom port widget\n- [x] custom cable widget\n- [x] multiple connections on a single port.\n- [x] on-connect event\n- [x] on-disconnect event\n- [x] on-hover event\n- [x] garbage collection\n- [ ] multi-touch support (help me)\n\n## Examples\n\nClick the images to see the source code. See [/examples](https://github.com/ryo33/egui_cable/blob/main/examples) for more examples.\n\n[![Simple example](https://user-images.githubusercontent.com/8780513/170413124-5400d9b4-8f10-4607-bc37-23acc8c6b842.png)](https://github.com/ryo33/egui_cable/blob/main/examples/simple.rs)\n\n[![Connect example](https://user-images.githubusercontent.com/8780513/170408794-ef879b04-9095-4c48-94d6-4773af9437e1.png)](https://github.com/ryo33/egui_cable/blob/main/examples/connect.rs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryo33%2Fegui_cable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryo33%2Fegui_cable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryo33%2Fegui_cable/lists"}