traits
broot
Our great sponsors
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.
traits
-
RustCrypto Release Announcements: `aead` v0.4, `cipher` v0.3, `crypto` v0.2, `elliptic-curve` v0.9, `ecdsa` v0.11
For ECIES that'd probably be something like HPKE. HPKE isn't specific to ECC though, and is defined in terms of a KEM, so the first step there would probably be defining KEM traits which would allow you to plug in ECDH or potentially a post-quantum algorithm or RSA.
-
The last and next year of image-rs
No need for eternal stability. It would be indeed nice to get the API right the first time, but in practice it's borderline impossible to do. It's fine for trait crates to introduce breaking changes from time to time, especially for pre-1.0 ones. For prior art you can take a look at rand_core or RustCrypto trait crates.
-
What’s everyone working on this week (8/2021)?
I finally dusted off my barely-working git hosting solution and added a basic user account system. It took me some time to understand how exactly I was supposed to use password-hash in combination with my hashing function of choice, as well as with the DB. Using sqlx together with Rocket turned out to be somewhat easy once I figured out that I should disregard the built-in database support, since it's seemingly incompatible with sqlx.
-
Go vs Rust for crypto implementations
The main difference between those two languages, I think you should look at, is power of type system. A good type system allows to encode various invariants checked at compile time, help with interoperability, and even improve performance a bit (e.g. by eliminating runtime-checks). In this regard Rust is far, far ahead of Go in my opinion and continues to improve in this regard (e.g. soon we will have const generics). For example, in RustCrypto we have trait crates which contain "interfaces" of several algorithm types. Almost all algorithm implementations in this org (and some third-party implementations) are implemented in terms of those traits, which means you can easily swap algorithms with each other and combine them like Lego blocks, without diving deep into source code. This property is especially important if you want to support less common algorithms (e.g. regional standards or newly developed algorithms).
broot
-
Use Midnight Commander like a pro (2015)
Take a look at broot https://github.com/Canop/broot
-
Johnny Decimal: A System to Organize Projects
A past coworker implemented a system like this. It was awful. He was the gatekeeper because the numbers and names had to be "just so" to meet his approval, and he was the most senior person on the team. He was neurotic in general and a pain to work with.
The idea of limiting yourself to a few top-level categories in a directory hierarchy and then doing the same with subdirectories makes sense, but adding numbers is a bad idea. It just creates more work, and other people have to learn your idiosyncratic nomenclature. Just give the directories good names and get on with it. Search really isn't as bad as the article suggests, especially with something like broot [1].
- Broot: A new way to look at file management written in Rust
-
Antonmedv/walk: Terminal file manager
I've used a lot of the tools mentioned here in comments, but I think just for finding a directory/file broot[1] is much faster and easier than others. Though it is also quite feature rich but mostly it's just write a fuzzy search term that could even be sub-sub-directory and open, extremely quickly.
-
Projectable: A TUI file manager built for projects
`broot` (https://github.com/Canop/broot) is another file manager with a curious interface that seems to fill a similar niche.
Of course, there are many other file managers to choose from (mc, ranger, nnn, lf, ....), but most of them don't show nested subdirectories by default.
-
Report on platform-compliance for cargo directories
As a macOS user, it boils my brain whenever I've to type in something like ~/Library/Application Support/org.rust-lang.Cargo/config.toml. macOS users have been begging CLI tools to support XDG variables on macOS too. Setting defaults is a strong indication to the community what should be the "preferred" locations. The defaults defined in your article will invariably lead to some authors saying that if that path is good enough for cargo, then it is good enough for their tool. Even the latest draft RFC acknowledges that macOS should use XDG variables too. I've written more about this here.
-
erdtree v1.2.0, a modern multi-threaded alternative to `du` and `tree` now with support for globbing, icons, and more
You may be interested in broot
-
bsdutils: Alternative to GNU coreutils using software from FreeBSD
I think you’re conflating different projects.
There are projects that aim for a better user experience, with better command line interface, defaults, performance and UI. These are of course breaking changes and the programs can’t be used as drop in replacement. Some examples are
- ls => exa (https://github.com/ogham/exa)
- grep => ripgrep (https://github.com/BurntSushi/ripgrep)
- cat => bat (https://github.com/sharkdp/bat)
- tree => broot (https://github.com/Canop/broot)
The person you’re replying to was speaking of a different project - uutils (https://github.com/uutils/coreutils). These are drop in replacements with identical interfaces (modulo bugs).
-
Reading Ebooks on the Commandline
Even better broot, previously adding view verb to config:
-
Is possible to configure "micro" terminal text editor with "broot" tool, to open text file with micro?
Broot: https://github.com/Canop/broot
What are some alternatives?
rav1e - The fastest and safest AV1 encoder.
fzf - :cherry_blossom: A command-line fuzzy finder
tink-rust - Rust port of Tink cryptography library
nnn - n³ The unorthodox terminal file manager
nlprule - A fast, low-resource Natural Language Processing and Text Correction library written in Rust.
xplr - A hackable, minimal, fast TUI file explorer
mos - An assembler, code formatter, language server and debug adapter for the MOS 6502 CPU.
zoxide - A smarter cd command. Supports all major shells.
google-hashcode-template - Google Hashcode Rust Template
lf - Terminal file manager
meta - Meta-crates of the RustCrypto project
voidrice - My dotfiles (deployed by LARBS)