proptest
tui-rs
DISCONTINUED
Our great sponsors
proptest | tui-rs | |
---|---|---|
15 | 68 | |
1,554 | 10,829 | |
3.2% | - | |
8.3 | 4.7 | |
6 days ago | 8 months ago | |
Rust | Rust | |
Apache License 2.0 | 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.
proptest
-
What Are The Rust Crates You Use In Almost Every Project That They Are Practically An Extension of The Standard Library?
proptest: Property-based testing with random input generation.
-
Iterating on Testing in Rust
Isn't proptest something that could handle this?
-
The birth of a package manager [written in Rust :)]
proptest is great! It generates random input data according to some rules, and if the input fails it saves random seed into a file so that failing inputs are guaranteed to be tested on the subsequent runs (as well as new random inputs). It also doesn't immediately stop on fail but tries to find a minimal failing input first.
-
Hey Rustaceans! Got a question? Ask here (11/2023)!
The only other crate I could find is proptest, but it looks a lot more complicated, and I don't know if lets you skip the shrinking step as quickcheck does. I've been reading the book and going through the docs, but a quick answer would be appreciated.
-
Hey Rustaceans! Got a question? Ask here! (32/2022)!
Hi, I'm working on a fuzzer, that fuzzes APIs based on OpenAPI specification. I'd like to implement shrinking. It means that when an interesting input (for the API) is found, I'd like to create the smallest possible input that still causes the same behaviour of the API. I'd like to implement a payload generation via proptest, because it already has the shrinking ability. I'm having issues implementing the JSON object as a proptest strategy. Here is what I tried so far. I explained it in a detail in stackoverflow question but it did not reach many people. Thanks for your help!
-
Which Mutex to use in this case (independent tasks, partially under contention)
Third, if you're opting out of a compile-time safety guarantee in the name of performance, test heavily (high-coverage unit tests, property testing, fuzzing, differential fuzzing, etc.) and make use of tools like Loom and Miri's runtime data race detector for unsafe code, which can catch stuff that is beyond the scope of the compiler's guarantees.
-
Is RUST aiming to build an ecosystem on scientific computing?
See also property testing
-
Is there a rust way for doing TDD?
It is not hard to do TDD with integration tests either, just write tests that encapsulate the properties you want your library to hold then implement those properties one by one. This is also known as property driven/based testing which then couples well with fuzzers or randomized testing where you randomize the input rather than using large amounts of test assets. This also help you catch a lot more bugs that you never even thought of. proptest is a good library that can help with this.
- Go Fuzzing
-
In praise of property-based testing (2019)
I'm quite new to property testing, first introduced recently via a Rust property testing framework proptest[0]. So far i've had the feeling that property testing frameworks need to include a way to rationalize complexity, as their assumptions can easily fall short as you illustrated.
Eg the simplest example might be an application where you input an integer, but a smaller int actually drives up the complexity. This idea gets more complex when we consider a list of ints, where a larger list and larger numbers are simpler. Etcetc.
It would be neat if a proptest framework supported (and maybe they do, again, i'm a novice here) a way to rank complexity. Eg a simple function which gives two input failures and you can choose which is the simpler.
Another really neat way to do that might be to actually compute the path complexity as the program runs based on the count of CPU instructions or something. This wouldn't always be a parallel, but would often be the right default i imagine.
Either way in my limited proptest experience, i've found it a bit difficult to design the tests to test what you actually want, but very helpful once you establish that.
tui-rs
-
Trippy – A Network Diagnostic Tool
The TUI is built with the awesome Ratatui [0] library (formerly tui-rs [1]). UX is certainly not my area of expertise and I would not have been able to create Trippy without this library.
-
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.
- ratatui 0.21.0 is released! (community fork of tui-rs)
-
Looking for advice around project direction using artix-web
CLI, use Clap. If you want to get fancy, use Tui.
-
[Media] Introducing Trippy: A Network Diagnostic Tool
u/lordnacho666 It uses the fabulous https://github.com/fdehau/tui-rs (now revived as https://github.com/tui-rs-revival/ratatui) TUI lib.
-
Introducing TUI-Journal: Your Personal Journal/Notes App for Terminal Enthusiasts
This app is based on the these two crate in rust (tui-rs , tui-textarea). The text area provide the Emacs motions and I integrated the vim motions there, but the editor in this app as much simpler than the huge VIM and Emacs systems
If you interested in the TUI apps in rust you can start with the crate tui-rs or its revival ratatui. They have examples inside of them which you can start and see the source code to get the basic functionalities. For the text editor you can check examples in the crate tui-textarea.
-
Ink: React for interactive command-line apps
For Golang there is Bubbletea [1], Textual [2] for Python and tui-rs for Rust [3].
[1] https://github.com/charmbracelet/bubbletea
- [Rust] Si vous voulez relancer la caisse `` Tui`, rejoignez-nous!
-
ratatui 0.20.0 is released! (actively maintained tui-rs fork)
A month ago, we have announced that we were working on reviving the tui crate since the original maintainer had expressed that he couldn't find time to continue development. Since then, we have been working on merging the PRs from the original repository and overall improving the codebase/documentation. We also decided on a new name (ratatui) and a logo for the organization.
What are some alternatives?
crossterm - Cross platform terminal library rust
Cursive - A Text User Interface library for the Rust programming language
quickcheck - Automated property based testing for Rust (with shrinking).
pancurses - A Rust curses library, supports Unix platforms and Windows
Termion - Mirror of https://gitlab.redox-os.org/redox-os/termion
monkeytype - The most customizable typing website with a minimalistic design and a ton of features. Test yourself in various modes, track your progress and improve your speed.
rich - Rich is a Python library for rich text and beautiful formatting in the terminal.
fast-ssh - ⌨️ FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.
fui - Add CLI & form interface to your program. Docs: https://docs.rs/fui
Ink - 🌈 React for interactive command-line apps
bearlibterminal - BearLibTerminal FFI for Rust
afl.rs - 🐇 Fuzzing Rust code with American Fuzzy Lop