crates-tui
is a simple terminal user interface explorer for crates.io based on Ratatui.
crates-tui.mov
It supports features like:
- copy
cargo add
command to clipboard - open the docs page in the browser
- open crates.io page in the brower
![image](https://private-user-images.githubusercontent.com/1813121/303366787-62d9234f-59a8-4091-ba50-7cd050d9763a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM2Njc4Ny02MmQ5MjM0Zi01OWE4LTQwOTEtYmE1MC03Y2QwNTBkOTc2M2EucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjQzNTVlNWYyYThjNTYzY2ViMzA2MjQxNmQ3NzhhOTQ3NzU2OTRiNjg4NWUzNmNlMGQzMWY4MWRlZjFhNTIxNSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.qjAuLny3Hr5U2l3oiwekbeCqy9igiX3kCVzjcLTpt-8)
![image](https://private-user-images.githubusercontent.com/1813121/303366366-e12a3320-1232-46e1-951e-14c9d20f0734.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM2NjM2Ni1lMTJhMzMyMC0xMjMyLTQ2ZTEtOTUxZS0xNGM5ZDIwZjA3MzQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjZiYjIyNmJhZDliYzA0NDZkNjE1MmYwM2NjNDNjNTliM2YwNDhiODEzZmRjMTdjZDg1ZTQ1NjZmNWVjOTFiOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.ilLg5aU9FsJduX6P2sPRKHOnoXq37cAbZ_ArSfKtjzU)
![image](https://private-user-images.githubusercontent.com/1813121/303366085-21fcbf12-63c1-4952-aa5e-1d926f4919a0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM2NjA4NS0yMWZjYmYxMi02M2MxLTQ5NTItYWE1ZS0xZDkyNmY0OTE5YTAucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTUwOTBiYjllMGEwNjUwMjIzYjk3NTc4NGI4ZTg1ZWYzZDQyNTQ1MDZmMDVkOWMzZmU4NjAxZDRjZWViNGQ4NiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.oeNmeUEqKtQQRE1a5ecoUCuWV54l7W4j0Pqs6_SAz3M)
![image](https://private-user-images.githubusercontent.com/1813121/303366682-25e8eca1-68bf-4560-a55f-0a4b7fcebe81.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM2NjY4Mi0yNWU4ZWNhMS02OGJmLTQ1NjAtYTU1Zi0wYTRiN2ZjZWJlODEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2MxMGMzNDkwYWE2YWY1ODZmNmM2MjI2MWYwYWY4MGQ3NGYxYTcwYzQ2MTRhY2UwZmMzNGYyMjVkOTQxNWE4MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.JgBF8S2oV4r4WOgY7ncDFI6Y-kGqLFh4gNWFzdQToa8)
cargo install crates-tui
crates-tui
can be installed with an AUR helper:
paru -S crates-tui
open-in-browser.mov
crates-tui-logging.mov
![image](https://private-user-images.githubusercontent.com/1813121/303357473-0c65b9a2-cc01-4c40-bf3e-79f6522411d8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM1NzQ3My0wYzY1YjlhMi1jYzAxLTRjNDAtYmYzZS03OWY2NTIyNDExZDgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjRmZTFlOWE4YTNjYTQ0Y2JmMGQ4ZjA3Yjg1YzI3OGZmN2EzMjFhMjg3OWRmZmY4OTA1YzI1OGMxYjExMzQ1OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.K4-4fyOf4OL2G_DLZEcQhdI1agJSYKeKd-HPkmAPAzM)
![image](https://private-user-images.githubusercontent.com/1813121/303357640-5130a654-76c0-411b-8fbb-5ea9946acdd7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM1NzY0MC01MTMwYTY1NC03NmMwLTQxMWItOGZiYi01ZWE5OTQ2YWNkZDcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTQwZjg5NTA3NDQ5NWRlNTcyZjA4YzY5NmZiZjllYzEwMTAwNWE1OWIxNmUyNzkwNTY2ZTdhNTNjZWQ3OGY2MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.hYGQUzdKQSxDXOA14wUVvLzxJlliSIPW2T4Bvgd19J0)
![image](https://private-user-images.githubusercontent.com/1813121/303358496-8f6d5ede-b0c6-418c-9762-41964a9dcee6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MDQzMzksIm5iZiI6MTczOTcwNDAzOSwicGF0aCI6Ii8xODEzMTIxLzMwMzM1ODQ5Ni04ZjZkNWVkZS1iMGM2LTQxOGMtOTc2Mi00MTk2NGE5ZGNlZTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTZUMTEwNzE5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTcyYzQwM2IxMTNiMzYzZmUwOGJmNDc2YWU4ZDA3ZTg4YWZmZGQzNDlkYWQyZGUyOGM3Y2Q5YzQ4NGM2NWZiMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.UvHe4Rp-7d2-ei92Lu5130DhOw8_BbVGoEpngtm8DDc)
You can find example color configurations here.
help.mov
You can find the default configuration here.
This repository contains an opinionated way of organizing a small to medium sized Ratatui TUI applications.
It has several features, notably:
- Uses
async
to fetch crate information without blocking the UI - Multiple custom widgets
- Selection tab
- Input prompt
- Search results table
- Summary view
- Has configurable key chords that map to actions
This repository is meant to serve as a reference for some patterns you may follow when developing Ratatui applications. The code will function as a reference for the tutorial material on https://ratatui.rs as well.