https://github.com/ryo33/egui_cable
Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API
https://github.com/ryo33/egui_cable
data-flow-diagram data-oriented egui node-based
Last synced: 4 months ago
JSON representation
Generic and extensible egui widgets to create analog synthesizer-like UI with data-oriented API
- Host: GitHub
- URL: https://github.com/ryo33/egui_cable
- Owner: ryo33
- Created: 2022-05-22T03:40:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-07T23:14:33.000Z (about 1 year ago)
- Last Synced: 2025-03-15T13:16:33.478Z (11 months ago)
- Topics: data-flow-diagram, data-oriented, egui, node-based
- Language: Rust
- Homepage:
- Size: 198 KB
- Stars: 128
- Watchers: 6
- Forks: 6
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-egui - egui_cable
README
# egui_cable
[](https://github.com/ryo33/egui_cable)

[](https://crates.io/crates/egui_cable)
[](https://docs.rs/egui_cable)
A generic and extensible data-oriented widget for connecting ports by cables.
Nice to use for:
- analog synthesizer-like UI
- node-based UI
## Versions
| egui | egui_cable |
| ---- | ---------- |
| 0.27 | 0.5 |
| 0.28 | 0.6 |
| 0.29 | 0.7 |
| 0.30 | 0.8 |
| 0.31 | 0.9 |
## Features
- [x] connect ports by data
- [x] dynamic connect and disconnect
- [x] lock connection
- [x] custom plug widget
- [x] custom port widget
- [x] custom cable widget
- [x] multiple connections on a single port.
- [x] on-connect event
- [x] on-disconnect event
- [x] on-hover event
- [x] garbage collection
- [ ] multi-touch support (help me)
## Examples
Click the images to see the source code. See [/examples](https://github.com/ryo33/egui_cable/blob/main/examples) for more examples.
[](https://github.com/ryo33/egui_cable/blob/main/examples/simple.rs)
[](https://github.com/ryo33/egui_cable/blob/main/examples/connect.rs)