cargo-deb
Cursive
cargo-deb | Cursive | |
---|---|---|
3 | 22 | |
377 | 4,119 | |
- | - | |
7.8 | 7.3 | |
16 days ago | 7 days ago | |
Rust | Rust | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cargo-deb
-
AMDGPU_TOP v0.1.2 - switch to crossterm-backend, add simple fdinfo viewer
Ok, AMDGPU_TOP v0.1.3 is released. And the deb package is released at the same time (thanks cargo-deb).
-
How do I turn my shell into a package?
cargo deb?
-
Rust for the Kernel Could Possibly Be Merged for Linux 5.20
Rust actually works fine with distros. See for example https://github.com/kornelski/cargo-deb and https://wiki.archlinux.org/title/Rust_package_guidelines
I use Arch Linux and Most Rust programs I use are installed from the Arch repositories or AUR. Rust packages are very well integrated with the distro, they depend on distro packages and have other packages depend on it. As far as the user is concerned, the Rust build system is just a developer-only stuff like CMake or autotools or ninja or whatever.
Anyway I would like to point out that C++ also do something similar to what Rust libraries typically do, which is to use header-only libraries that don't appear as separate distro packages. It's as if every Rust library meant to be used by Rust programs (as opposed to libraries that expose a C API that can be called by other languages) were a header-only library. And this is actually great because Rust (like C++) monomorphizes generics, that is, if you call a generic function defined on another crate, the compiler actually generates a new function just with the type parameters you supplied, and there's no way the library can know upfront which generic instantiations will happen over all programs that use it.
On the reproducibility front, I think it would be great if C program actually did what Rust does and pinned the exact damn versions of all libraries they use (like Cargo.toml does)
Cursive
-
Projectable: A TUI file manager built for projects
Rust has great libraries for TUIs. tui-rs (https://github.com/fdehau/tui-rs) has been used in numerous popular applications, but is unmaintained. ratatui (https://github.com/tui-rs-revival/ratatui) is the maintained version, and is pretty new. Less widely known is cursive (https://github.com/gyscos/cursive), which I have yet to try.
Aside from the libraries, I just wanted to start a project that would make be better at Rust. The easy distribution with cargo is a huge bonus though.
- cursive: A Text User Interface library for the Rust programming language
-
How difficult is ncurses?
There are plenty of terminal UI libraries that are actually nice to work with. For Python, there's Textual and PyTermGUI. For Rust, there's ratatui and Cursive (or, if you want something a bit lower level, crosster or termion). For Go, there's bubbletea.
-
AMDGPU_TOP v0.1.2 - switch to crossterm-backend, add simple fdinfo viewer
Switching the backend of Cursive to crossterm removed dependence on ncurses
-
Appreciation post
I'd hear of TUIs so I just searched for tui libraries in Rust and Cursive seemed like a good choice and it turned out great!
-
Sharing Saturday #455
This weekend I started porting my game to a different UI library (egui) as a way of familiarizing myself with egui. I don't think I'll have something useable to build off of before this year's 7DRL challenge so I guess I'll be reusing my existing UI code (using cursive). But, once I finish porting the UI it should be a lot easier to add fancy stuff like animations, tooltips, and graphical tiles since I won't be tied to constraints of a terminal UI.
-
CLIs and TUIs packages
Cursive should let you easily build a layout with a menu and status bars (and mouse works).
-
Dwarf Fortress – randomly generated, persistent fantasy world
The thing that gets me about Dwarf Fortress is that it's a 64-bit text-mode game.
As a grey-haired developer who got excited about "DOS Extenders" that allowed 32-bit mode, seeing a text-mode game written as a native 64-bit application is bizarrely anachronistic.
I get a similar feeling from text-mode GUI frameworks for Rust, which allow multi-threading and 64-bit but are essentially clones of Borland Turbo Vision, where you had to be mindful to keep lists smaller than 64KB: https://github.com/gyscos/cursive
-
How to maintain app state in an app using Cursive
Maybe this helps?
-
Rust TUI libraries
cursive
What are some alternatives?
surveys - Repo for coordinating the creation, distribution, collection, and analysis of surveys for the Rust project.
tui-rs - Build terminal user interfaces and dashboards using Rust
amdgpu_top - Tool to display AMDGPU usage
Termion - Mirror of https://gitlab.redox-os.org/redox-os/termion
crossterm - Cross platform terminal library rust
ncurses-rs - A low-level ncurses wrapper for Rust
rfcs - RFCs for changes to Rust
rustbox - Rust implementation of the termbox library
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
rust-sciter - Rust bindings for Sciter
libdrm-amdgpu-sys-rs - libdrm_amdgpu bindings for Rust, and some methods ported from Mesa3D
conrod - An easy-to-use, 2D GUI library written entirely in Rust.