a brief context of the project:
i often needed port forwards for debugging and local dev, plus ssh tunnels for private services in gcp/aws vpcs, which meant running many commands, also native kubectl port-forward wasn’t enough for udp services like statsd. this led to the creation of kftray in december 2023 and the start of kftui development last month.
the first version of kftray was super basic and written in go (with fyne) with only features to import configs from a file and start/stop all port forwards at the same time. but i wanted to learn rust and mess around with tauri framework, so i made the first version of kftray with backend in rust / frontend in typescript, and after seeing ppl use and enjoy kftray, i added more features based on their feedback and my personal experience with the app
the initial code was messy, but i’ve learned (still learning) and improved it a lot and this personal growth kept me motivated. (though it still has its quirks, lol),
last month, i started developing kftui to remove the frontend code complexity and the need for a monitor display to run the app (a headless app). now, kftui is totally independent of the kftray app, but both share the same states. this means that if a json file with all configs is created and exported in the kftray app, it can be imported into kftui and used without any issues.
its important to note that right now, kftui is still in beta (maybe even alpha), so there are some limitations and missing features compared to the full kftray desktop app. for example, adding or editing configurations directly from the tui is not possible and some features from the desktop app aren't in kftui, and also github sync and http trace logging features are not implemented yet. but development is ongoing. (for a matrix feature of kftray and kftui please check the blog post).
the next goal is to get kftui to run port forwards as a daemon so they can be attached and detached without dropping the tokio TCP sockets. it’s tricky, especially without a background process like a local server process running, but this issue is being worked on.
a lot has been learned from this project, skills and knowledge have been gained that i wouldn't have gotten in a day-to-day SRE job, and that's why im going to keep at it.
thats it, feedback is super important, so please share thoughts and suggestions
hope you find useful :D
this is the main repository for both apps, kftray and kftui: https://github.com/hcavarsan/kftray