# Pingo - a simple ping visualizer written in go using the bubbletea framework To run the project, simply `go run cmd/pingo.go` To install the project, simply `go install cmd/pingo.go` To compile the project, simply `go build cmd/pingo.go` To use the project as a bubble in bubbletea programs: ``` import "git.crowcollective.space/pingo" bubble := pingo.InitialPeakModel() ``` > for an example implementation of the bubble, see cmd/pingo.go ## Roadmap: > see ./issues for more. See also [issues-go][issues-go] for a browser TUI. - `ping.go:// TODO(performance): implement ping message channel buffering` - `tui.go:// TODO(chart): dynamically render charts to fit height on not set` - `tui.go:// TODO(styling): allow end user to define their own styles when hacking.` - [ ] "scroll peek" refinements ## Core - [x] Implements Bubbletea framework - [x] Implements lipgloss styling - [x] Implements viewport logic via bubbles - [x] Implements ntcharts framework for tables ## Extras - [ ] Implement ssh TUI client (via wish) - [ ] Implement peak and average models (currently implemented: peak) ## resources | resource | use | |-----------------|------------------------------------| | Core frameworks | | | [bubbletea][bt] | TUI framework | | [lipgloss][lg] | Terminal text formatting framework | |-----------------|------------------------------------| | TUI widgets | | | [bubbles][bbl] | widget lib for bubbletea | | [ntcharts][ntc] | chart widgets for bubbletea | |-----------------|------------------------------------| | extras | | | [wish][wish] | ssh tui client | |-----------------|------------------------------------| ### proposed color palette | base | lower | middle | secondary | primary | |-----------|-----------|-----------|-----------|-----------| | `#19535f` | `#0b7a75` | `#d7c9aa` | `#7b2d26` | `#f0f3f5` | [bt]: https://github.com/charmbracelet/bubbletea [lg]: https://github.com/charmbracelet/lipgloss [bbl]: charm.land/bubbles/v2 [ntc]: https://github.com/NimbleMarkets/ntcharts [wish]: https://github.com/charmbracelet/wish [issues-go]: ssh://git/issues-go.git [](vim: nowrap)