A modern, maintained replacement for ls

Overview

eza

eza is a modern, maintained replacement for ls, built on exa.

README Sections: OptionsInstallationDevelopment

Built with Nix Contributor Covenant

Unit tests Crates.io Crates.io

Screenshots of eza


eza is a modern, maintained replacement for the venerable file-listing command-line program ls that ships with Unix and Linux operating systems, giving it more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it’s small, fast, and just one single binary.

By deliberately making some decisions differently, eza attempts to be a more featureful, more user-friendly version of ls.


eza features not in exa (non-exhaustive):

  • Fixes “The Grid Bug” introduced in exa 2021.
  • Hyperlink support.
  • Selinux context output.
  • Git repo status output.
  • Human readable relative dates.
  • Several security fixes (see dependabot)
  • Many smaller bug fixes/changes!

Try it!

Nix ❄️

If you already have Nix setup with flake support, you can try out eza with the nix run command:

nix run github:cafkafk/eza

Nix will build eza and run it.

If you want to pass arguments this way, use e.g. nix run github:cafkafk/eza -- -ol.

Installation

eza is available for macOS and Linux.

Cargo (crates.io)

Crates.io

If you already have a Rust environment set up, you can use the cargo install command:

cargo install eza

Cargo will build the eza binary and place it in $HOME/.local/share/cargo/bin/eza.

Cargo (git)

If you already have a Rust environment set up, you can use the cargo install command in your local clone of the repo:

git clone https://github.com/cafkafk/eza.git
cd eza
cargo install --path .

Cargo will build the eza binary and place it in $HOME/.cargo.

Arch Linux

AUR package

Eza is available in the AUR.

Nix

nixpkgs unstable package

Eza is available from Nixpkgs.

For nix profile users:

nix profile install nixpkgs#eza

For nix-env users:

nix-env -i eza

Click sections to expand.

Command-line options

Command-line options

eza’s options are almost, but not quite, entirely unlike ls’s.

Display options

  • -1, --oneline: display one entry per line
  • -G, --grid: display entries as a grid (default)
  • -l, --long: display extended details and attributes
  • -R, --recurse: recurse into directories
  • -T, --tree: recurse into directories as a tree
  • -x, --across: sort the grid across, rather than downwards
  • -F, --classify: display type indicator by file names
  • --colo[u]r: when to use terminal colours
  • --colo[u]r-scale: highlight levels of file sizes distinctly
  • --icons: display icons
  • --no-icons: don't display icons (always overrides --icons)
  • --hyperlink: display entries as hyperlinks

Filtering options

  • -a, --all: show hidden and 'dot' files
  • -d, --list-dirs: list directories like regular files
  • -L, --level=(depth): limit the depth of recursion
  • -r, --reverse: reverse the sort order
  • -s, --sort=(field): which field to sort by
  • --group-directories-first: list directories before other files
  • -D, --only-dirs: list only directories
  • --git-ignore: ignore files mentioned in .gitignore
  • -I, --ignore-glob=(globs): glob patterns (pipe-separated) of files to ignore

Pass the --all option twice to also show the . and .. directories.

Long view options

These options are available when running with --long (-l):

  • -b, --binary: list file sizes with binary prefixes
  • -B, --bytes: list file sizes in bytes, without any prefixes
  • -g, --group: list each file’s group
  • -h, --header: add a header row to each column
  • -H, --links: list each file’s number of hard links
  • -i, --inode: list each file’s inode number
  • -m, --modified: use the modified timestamp field
  • -S, --blocks: list each file’s number of file system blocks
  • -t, --time=(field): which timestamp field to use
  • -u, --accessed: use the accessed timestamp field
  • -U, --created: use the created timestamp field
  • -X, --dereference: dereference symlinks for file information
  • -Z, --context: list each file’s security context
  • -@, --extended: list each file’s extended attributes and sizes
  • --changed: use the changed timestamp field
  • --git: list each file’s Git status, if tracked or ignored
  • --time-style: how to format timestamps
  • --no-permissions: suppress the permissions field
  • -o, --octal-permissions: list each file's permission in octal format
  • --no-filesize: suppress the filesize field
  • --no-user: suppress the user field
  • --no-time: suppress the time field

Some of the options accept parameters:

  • Valid --color options are always, automatic, and never.
  • Valid sort fields are accessed, changed, created, extension, Extension, inode, modified, name, Name, size, type, and none. Fields starting with a capital letter sort uppercase before lowercase. The modified field has the aliases date, time, and newest, while its reverse has the aliases age and oldest.
  • Valid time fields are modified, changed, accessed, and created.
  • Valid time styles are default, iso, long-iso, full-iso, and relative.
Development

Development Rust 1.63.0+ MIT Licence

eza is written in Rust. You will need rustc version 1.56.1 or higher. The recommended way to install Rust for development is from the official download page, using rustup.

Once Rust is installed, you can compile eza with Cargo:

cargo build
cargo test
  • The just command runner can be used to run some helpful development commands, in a manner similar to make. Run just --list to get an overview of what’s available.

  • If you are compiling a copy for yourself, be sure to run cargo build --release or just build-release to benefit from release-mode optimisations. Copy the resulting binary, which will be in the target/release directory, into a folder in your $PATH. /usr/local/bin is usually a good choice.

  • To compile and install the manual pages, you will need pandoc. The just man command will compile the Markdown into manual pages, which it will place in the target/man directory. To use them, copy them into a directory that man will read. /usr/local/share/man is usually a good choice.

  • eza depends on libgit2 for certain features. If you’re unable to compile libgit2, you can opt out of Git support by running cargo build --no-default-features.

  • If you intend to compile for musl, you will need to use the flag vendored-openssl if you want to get the Git feature working. The full command is cargo build --release --target=x86_64-unknown-linux-musl --features vendored-openssl,git.

Developing on Nix (experimental) ❄️

If you have a working Nix installation with flake support, you can use nix to manage your dev environment.

nix develop

The Nix Flake has a few features:

  • Run nix flake check to run treefmt on the repo.
  • Run nix build and manually test ./results/bin/eza -- <arguments> for easy debugging.
  • Run nix build .#test to run cargo test via the flake.
  • Run nix build .#clippy to lint with clippy (still work in progress).

Testing with Vagrant

eza uses Vagrant to configure virtual machines for testing.

Programs such as eza that are basically interfaces to the system are notoriously difficult to test. Although the internal components have unit tests, it’s impossible to do a complete end-to-end test without mandating the current user’s name, the time zone, the locale, and directory structure to test. (And yes, these tests are worth doing. I have missed an edge case on many an occasion.)

The initial attempt to solve the problem was just to create a directory of “awkward” test cases, run eza on it, and make sure it produced the correct output. But even this output would change if, say, the user’s locale formats dates in a different way. These can be mocked inside the code, but at the cost of making that code more complicated to read and understand.

An alternative solution is to fake everything: create a virtual machine with a known state and run the tests on that. This is what Vagrant does. Although it takes a while to download and set up, it gives everyone the same development environment to test for any obvious regressions.

First, initialise the VM:

host$ vagrant up

The first command downloads the virtual machine image, and then runs our provisioning script, which installs Rust and eza’s build-time dependencies, configures the environment, and generates some awkward files and folders to use as test cases. Once this is done, you can SSH in, and build and test:

host$ vagrant ssh
vm$ cd /vagrant
vm$ cargo build
vm$ ./xtests/run
All the tests passed!

Of course, the drawback of having a standard development environment is that you stop noticing bugs that occur outside of it. For this reason, Vagrant isn’t a necessary development step — it’s there if you’d like to use it, but eza still gets used and tested on other platforms. It can still be built and compiled on any target triple that it supports, VM or no VM, with cargo build and cargo test.

Comments
  • Bug: output wraps in terminal (with --icons)

    Bug: output wraps in terminal (with --icons)

    Here's a reproduction: Note that the line splitting is put in place by me. It is technically outputting a single line, but because it reaches the end, it wraps. When copying the output, I had to manually insert newlines to mimic the output seen on my terminal.

    > echo $COLUMNS
    168
    > mkdir /tmp/test
    > for i in {1..11}; do touch /tmp/test/file-number-$i; done
    > cargo run --release /tmp/test/
    file-number-1  file-number-2  file-number-3  file-number-4  file-number-5  file-number-6  file-number-7  file-number-8  file-number-9  file-number-10  file-number-11
    > cargo run --release /tmp/test/ --icons
     file-number-1   file-number-2   file-number-3   file-number-4   file-number-5   file-number-6   file-number-7   file-number-8   file-number-9   file-number-1
    0   file-number-11
    > touch /tmp/test/file-number-12
    > cargo run --release /tmp/test/
    file-number-1  file-number-3  file-number-5  file-number-7  file-number-9   file-number-11
    file-number-2  file-number-4  file-number-6  file-number-8  file-number-10  file-number-12
    > cargo run --release /tmp/test/  --icons
     file-number-1   file-number-3   file-number-5   file-number-7   file-number-9    file-number-11
     file-number-2   file-number-4   file-number-6   file-number-8   file-number-10   file-number-12
    > rm /tmp/test/file-number-* && rmdir /tmp/test # Don't forget to clean up :)
    
    Versioning Git commit: 5f29705cc5e8b98b94876a6c679eaef1d1d81028
    > cat /etc/os-release
    PRETTY_NAME="Ubuntu 22.04.2 LTS"
    NAME="Ubuntu"
    VERSION_ID="22.04"
    VERSION="22.04.2 LTS (Jammy Jellyfish)"
    VERSION_CODENAME=jammy
    ID=ubuntu
    ID_LIKE=debian
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    UBUNTU_CODENAME=jammy
    > rustc --version
    rustc 1.73.0-nightly (db7ff98a7 2023-07-31)
    

    Does this have something to do with #66 / #83?

    Note: the same procedure with exa v0.10.1 [-git]:

    > echo $COLUMNS
    168
    > mkdir /tmp/test
    > for i in {1..11}; do touch /tmp/test/file-number-$i; done
    > exa /tmp/test/
    file-number-1  file-number-2  file-number-3  file-number-4  file-number-5  file-number-6  file-number-7  file-number-8  file-number-9  file-number-10  file-number-11
    > exa /tmp/test/ --icons
     file-number-1   file-number-3   file-number-5   file-number-7   file-number-9    file-number-11
     file-number-2   file-number-4   file-number-6   file-number-8   file-number-10  
    > touch /tmp/test/file-number-12
    > exa /tmp/test/
    file-number-1  file-number-3  file-number-5  file-number-7  file-number-9   file-number-11
    file-number-2  file-number-4  file-number-6  file-number-8  file-number-10  file-number-12
    > exa /tmp/test/  --icons
     file-number-1   file-number-3   file-number-5   file-number-7   file-number-9    file-number-11
     file-number-2   file-number-4   file-number-6   file-number-8   file-number-10   file-number-12
    > rm /tmp/test/* && rmdir /tmp/test
    
    opened by aarondill 15
  • Let it snow? :snowflake: (Add first-party flake)

    Let it snow? :snowflake: (Add first-party flake)

    How are we feeling about adding a flake.nix and maybe try to move the dev and test-environment from Vagrant to nix as well?! (It seems like Vagrant and nix do not oppose each other... So we might just keep Vagrant but treat nix as the primary "environment control")

    needs feedback CI related 
    opened by sbatial 9
  • Grid view is broken

    Grid view is broken

    Running --grid with the latest git version of zetta is broken on my machine.

    E.g. by doing cargo run --release -- --grid, or using an installed version (see screenshot below).

    2023-07-28_13-43

    This is a fairly severe regression as the the default expected behavior of exa/zetta is to run --grid if nothing else is specified.

    https://github.com/ogham/exa/pull/1165#issuecomment-1650420594

    https://github.com/syphar/zetta/issues/4

    looking for testers 
    opened by cafkafk 7
  • (exa PR) 1136: Fix #393: add flag to dereference links

    (exa PR) 1136: Fix #393: add flag to dereference links

    https://github.com/ogham/exa/pull/1136

    todo:
    • [x] change commit messages to conventional commits
    • [x] a quick trip through merge hell
    • [x] add completions
    • [ ] needs manual testing
    looking for testers needs feedback 
    opened by cafkafk 5
  • [Question]: Parsing for git support

    [Question]: Parsing for git support

    What's the recommended way to test (in a shell) for git support.

    > eza --version
    eza - A modern, maintained replacement for ls
    v0.10.4 [+git]
    https://github.com/cafkafk/eza
    > eza --version | head -n2 | tail -n1 | grep -qF '[+git]'
    > eza --version | grep -qF '[+git]'
    

    Can you be guaranteed the features will always be on the second line? Will the git feature always be '[+git]' or '[-git]'? Should I instead search for '+git'?

    opened by aarondill 3
  • About the -A flag

    About the -A flag

    Currently there are 3 PRs trying to implement an -A flag. I'm unsure which one is preferred to focus on.

    https://github.com/cafkafk/eza/pulls?q=is%3Apr+is%3Aopen+label%3A%22-A+flag%22

    @sbatial how do you feel about this?

    opened by cafkafk 3
  • Flake improvments

    Flake improvments

    Tracking issue: #72

    • remove a bunch of whitespace
    • check nix files' formatting
    • run test suite with nix flake check
    • run cargo test when building via flake to ensure working output
    • add clippy as part of the toolchain
    opened by sbatial 2
  • About ENV_VARS

    About ENV_VARS

    Currently, the environment variables retain their old name, EXA_.

    If no one sees an issue with this, I'll change it to EZA_ in the foreseable future. Zetta wil probably remain backwards compatible.

    community › discussion 
    opened by cafkafk 2
  • completions: add bash git-repo and git-repo-no-status completions

    completions: add bash git-repo and git-repo-no-status completions

    Completions for bash are still missing. I haven't made them because I'm not very adept at bash completions.

    See: https://github.com/cafkafk/eza/pull/77

    help wanted good first issue features ›completions 
    opened by cafkafk 1
  • Link derefferncing doesn't respect `-x` on main branch

    Link derefferncing doesn't respect `-x` on main branch

    Introduced in PR https://github.com/eza-community/eza/pull/32 in the merge hell.

    This should not be hard to fix, I'll try to find time to take a look at it.

    errors › invalid output 
    opened by cafkafk 0
  • Windows Support

    Windows Support

    Right now, Eza does not support windows.

    It's not really something I care to implement, specially because I don't own a windows box.

    But if anyone is up for it, you could start by making a PR with the changes to CI from here.

    See: https://github.com/cafkafk/eza/pull/19

    os › windows 
    opened by cafkafk 0
  • Indicate folder state with icon

    Indicate folder state with icon

    The default folder icon is a closed one. It would be nice to have an indication for folders that are recursed into/contain files.

    See discussion on #46 for further information.

    help wanted good first issue features › icon 
    opened by sbatial 0
  • MacOS flake support

    MacOS flake support

    On latest main:

    error: linking with `cc` failed: exit status: 1
      |
      = note: LC_ALL="C" PATH="<removed for privacy>" "-Wl,-dead_strip" "-nodefaultlibs"
      = note: ld: framework not found Security
              clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
              
    
    error: could not compile `eza` (bin "eza") due to previous error
    

    Someone on an apple computer would need to bisect this.

    errors good first issue os › macos 
    opened by cafkafk 1
  • Move to uutils-term-grid

    Move to uutils-term-grid

    I'm pretty sure we should move to https://github.com/uutils/uutils-term-grid (see https://github.com/ogham/rust-term-grid/pull/15).

    See: https://github.com/cafkafk/eza/issues/66 for more context.

    good first issue 
    opened by cafkafk 1
Releases(v0.10.6)
  • v0.10.6(Aug 7, 2023)

    Description

    Bare git repo users and color appreciators will like this release :3

    Changelog

    Bug Fixes

    • Rename eza-colors-explanation
    • Exa -> eza in manpage

    Documentation

    • Adding --git-repos to help.
    • Add aur, nixpkgs installation

    Features

    • Use GIT_DIR env var to find the repo
    • Add color explanations

    New Contributors

    • @lukasz-lobocki made their first contribution in https://github.com/eza-community/eza/pull/113

    Full Changelog: https://github.com/eza-community/eza/compare/v0.10.5...v0.10.6

    Source code(tar.gz)
    Source code(zip)
  • v0.10.5(Aug 3, 2023)

    Description

    This is a bugfix release

    Changelog

    Bug Fixes

    • Output wraps in terminal
    • Respect icon spacing

    Full Changelog: https://github.com/cafkafk/eza/compare/v0.10.4...v0.10.5

    Source code(tar.gz)
    Source code(zip)
  • v0.10.4(Aug 2, 2023)

    Description

    Since v0.10.3, we managed to uphold the promise of only using conventional commit summaries :)

    This made it easier to generate a more readable changelog.

    By next time, hopefully, we will have found a good way to generate release binaries for Linux.

    Changelog

    Bug Fixes

    • Dereferencing linksfile size.
    • Dereferencing links users.
    • Dereferencing links groups.
    • Dereferencing links permissions.
    • Dereferencing links timestamps.
    • Syntax error

    Documentation

    • Add -X/--dereference flag

    Features

    • Add symlink dereferencing flag
    • Add -X/--dereference completions
    • Add -X/--dereference completions
    • Added ".out" files for latex
    • Add changelog generation
    Source code(tar.gz)
    Source code(zip)
  • v0.10.3(Jul 31, 2023)

    Description

    This will (hopefully) be the last release without conventional commits.

    In total, 48 pull requests have been merged.

    Status on exa pull requests

    Since friday, we have gone from 63 open pull requests from exa to 21.

    12 were closed (with one re-created and merged) and the remaining were closed.

    Changelog (general):

    Merged pr-1177: add hyperlink support
    Merged pr-855: add selinux context outputs
    Merged pr-797: git repo status, current branch
    Merged pr-1219: fish inode completions
    Merged pr-1164: -o shortcut for --octal-permissions
    Merged pr-1099: typo
    Merged pr-69: fix cargo.toml, completions, man pages
    Merged pr-981: use stdout for timezone errors
    

    Changelog (security):

    Bumped openssl-src: SM2 Decryption Buffer Overflow (Critical)
    Bumped openssl-src: openssl-src contains Double free after calling PEM_read_bio_ex (High)
    Bumped openssl-src: AES OCB fails to encrypt some bytes (High)
    Bumped openssl-src: openssl-src's infinite loop in BN_mod_sqrt() reachable when parsing certificates (High)
    Bumped openssl-src: Read buffer overruns processing ASN.1 strings (High)
    Bumped openssl-src: openssl-src vulnerable to Use-after-free following BIO_new_NDEF (High)
    Bumped openssl-src: Vulnerable OpenSSL included in cryptography wheels (High)
    Bumped openssl-src: openssl-src subject to Timing Oracle in RSA Decryption (Moderate)
    Bumped git2-rs: git2-rs fails to verify SSH keys by default (Moderate)
    Bumped git2-rs: git2-rs fails to verify SSH keys by default (Moderate)
    

    What's Changed

    • (exa PR) 1219: fix fish completion for -i/--inode option by @cafkafk in https://github.com/cafkafk/eza/pull/3
    • (exa PR) 797: Add status for subdirectories that are git repositories by @cafkafk in https://github.com/cafkafk/eza/pull/62
    • (exa PR) 855: Add option to show security attribute and improve extended support by @cafkafk in https://github.com/cafkafk/eza/pull/61
    • (exa PR) 1099: fix some typos by @cafkafk in https://github.com/cafkafk/eza/pull/39
    • (exa PR) 981: Don't show an error on stdout when there is no timezone info by @cafkafk in https://github.com/cafkafk/eza/pull/50
    • (exa PR) 1164: Add -o shorcut to --octal-permissions by @cafkafk in https://github.com/cafkafk/eza/pull/21
    • (exa PR) 1177: feature: hyperlink flag by @cafkafk in https://github.com/cafkafk/eza/pull/17
    • Bump openssl-src from 111.15.0+1.1.1k to 111.26.0+1.1.1u by @dependabot in https://github.com/cafkafk/eza/pull/67
    • fix: change name to eza by @cafkafk in https://github.com/cafkafk/eza/pull/69
    • Bump git2 from 0.13.20 to 0.16.1 by @dependabot in https://github.com/cafkafk/eza/pull/71
    • (exa PR) 1160: Update Cargo.toml to optimise binaries for size by @cafkafk in https://github.com/cafkafk/eza/pull/23
    • ci: remove unused .github files by @cafkafk in https://github.com/cafkafk/eza/pull/73
    • ci: Create unit-tests.yml by @cafkafk in https://github.com/cafkafk/eza/pull/75
    • feat(git): add git-status-.* completions by @cafkafk in https://github.com/cafkafk/eza/pull/77
    • fix(grid): fixed grid bug by @cafkafk in https://github.com/cafkafk/eza/pull/79
    • ci: add trivial nix flake by @cafkafk in https://github.com/cafkafk/eza/pull/80
    • doc(nix): document nix flake by @cafkafk in https://github.com/cafkafk/eza/pull/81
    • (exa PR) 1085 by @cafkafk in https://github.com/cafkafk/eza/pull/41
    • (exa PR) 1057: add icon for Vagrantfile by @cafkafk in https://github.com/cafkafk/eza/pull/45
    • (exa PR) 1006: Add git icon to .gitignore_global file by @cafkafk in https://github.com/cafkafk/eza/pull/49
    • (exa PR) 1061: Resolves #270: add support for --time-style=relative by @cafkafk in https://github.com/cafkafk/eza/pull/44
    • doc: Update README.md by @cafkafk in https://github.com/cafkafk/eza/pull/85
    • doc: readme change screenshot to eza by @cafkafk in https://github.com/cafkafk/eza/pull/87
    • Code of Conduct by @cafkafk in https://github.com/cafkafk/eza/pull/88
    • fix: bump rust to 1.71.0 by @cafkafk in https://github.com/cafkafk/eza/pull/90
    • (exa PR) 1094 by @cafkafk in https://github.com/cafkafk/eza/pull/40
    • (exa PR) 1064: Add -A option for more compatibility with ls by @cafkafk in https://github.com/cafkafk/eza/pull/43
    • (exa PR) 1051: changed default folder icon by @cafkafk in https://github.com/cafkafk/eza/pull/46
    • Flake improvments by @sbatial in https://github.com/cafkafk/eza/pull/93
    • (exa PR) 1120 by @cafkafk in https://github.com/cafkafk/eza/pull/35
    • (exa PR) 1128 by @cafkafk in https://github.com/cafkafk/eza/pull/33
    • (exa PR) 1140 by @cafkafk in https://github.com/cafkafk/eza/pull/31
    • (exa PR) 1148 by @cafkafk in https://github.com/cafkafk/eza/pull/27
    • (exa PR) 1162 by @cafkafk in https://github.com/cafkafk/eza/pull/22
    • (exa PR) 1178: Replace obsolete icons by @cafkafk in https://github.com/cafkafk/eza/pull/16
    • (exa PR) 1191: Update icons.rs by @cafkafk in https://github.com/cafkafk/eza/pull/12
    • (exa PR) 1194: add Emacs icon for .el and org-mode for .org by @cafkafk in https://github.com/cafkafk/eza/pull/10
    • (exa PR) 1199: Added icons for .rmeta and .ino files by @cafkafk in https://github.com/cafkafk/eza/pull/8
    • (exa PR) 1221: add icon support for .mjs, .cjs, .mts, .cts files by @cafkafk in https://github.com/cafkafk/eza/pull/2
    • (exa PR) 1150 by @cafkafk in https://github.com/cafkafk/eza/pull/25
    • (exa PR) 1175 by @cafkafk in https://github.com/cafkafk/eza/pull/18
    • (exa PR) 370: Replace fixed colors by named ones so that it works well with any color scheme by @cafkafk in https://github.com/cafkafk/eza/pull/64
    • fix: removed result by @cafkafk in https://github.com/cafkafk/eza/pull/95
    • (exa PR) 1121: Add some compiled file by @cafkafk in https://github.com/cafkafk/eza/pull/34
    • (exa PR) 1070: Make symlinks report their target's size, if valid by @cafkafk in https://github.com/cafkafk/eza/pull/42
    • (exa PR) 1188: Moving actions to dtolnay's version by @cafkafk in https://github.com/cafkafk/eza/pull/14
    • chore: bump to v0.10.2 by @cafkafk in https://github.com/cafkafk/eza/pull/96
    • fix: update --version info by @cafkafk in https://github.com/cafkafk/eza/pull/98
    • refactor: filetype.rs by @cafkafk in https://github.com/cafkafk/eza/pull/28
    • fix: update snapscraft.yaml by @cafkafk in https://github.com/cafkafk/eza/pull/99
    • feat(filetype): add compressed type by @cafkafk in https://github.com/cafkafk/eza/pull/100

    New Contributors

    • @cafkafk made their first contribution in https://github.com/cafkafk/eza/pull/3
    • @dependabot made their first contribution in https://github.com/cafkafk/eza/pull/67
    • @sbatial made their first contribution in https://github.com/cafkafk/eza/pull/93

    Full Changelog: https://github.com/cafkafk/eza/commits/v0.10.3-alpha

    Source code(tar.gz)
    Source code(zip)
Owner
eza
The community organization for eza, a modern, maintained replacement for ls
eza
Components of Fornjot that are no longer actively maintained. Pull requests still welcome!

Fornjot - Extra Components About These are extra components from the Fornjot repository, that are no longer actively maintained. Fornjot's goal was to

Hanno Braun 4 Jun 6, 2023
zoxide is a blazing fast replacement for your cd command

zoxide A smarter cd command for your terminal zoxide is a blazing fast replacement for your cd command, inspired by z and z.lua. It keeps track of the

Ajeet D'Souza 8.7k Dec 31, 2022
procs is a replacement for ps written in Rust.

procs is a replacement for ps written in Rust. Documentation quick links Features Platform Installation Usage Configuration Features Output by t

null 3.6k Dec 30, 2022
fastmod is a fast partial replacement for the codemod tool

fastmod is a fast partial replacement for codemod. Like codemod, it is a tool to assist you with large-scale codebase refactors, and it supports most of codemod's options.

Facebook Incubator 1.4k Dec 29, 2022
A drop-in replacement for `dapp` and `seth` in Rust

dapptools.rs Rust port of DappTools dapp example Usage Run Solidity tests Any contract that contains a function starting with test is being tested. Th

Georgios Konstantopoulos 5k Jan 1, 2023
A readline replacement written in Rust

A readline replacement written in Rust Basic example // Create a default reedline object to handle user input use reedline::{DefaultPrompt, Reedline,

JT 292 Jan 9, 2023
Fls - Ferris-LS, a very bad LS replacement. Besides that, proves that I suck at clean & good code.

FLS A handy ls remake, purely for learning. Why FLS? There's no reason, at all, don't use it. I just want to learn Rust :D Usage Flags: -i = Use icons

florida 6 Jan 24, 2022
🦀️atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols.

atosl-rs ??️ atos for linux by rust - A partial replacement for Apple's atos tool for converting addresses within a binary file to symbols. tested on

everettjf 60 Dec 29, 2022
xcp is a (partial) clone of the Unix cp command. It is not intended as a full replacement

xcp is a (partial) clone of the Unix cp command. It is not intended as a full replacement, but as a companion utility with some more user-friendly feedback and some optimisations that make sense under certain tasks (see below).

Steve Smith 310 Jan 5, 2023
drop-in replacement for libfuzzer

Fazi A reimplementation of libfuzzer in Rust with some improvements Supported Features libFuzzer's mutations SanCov feedback Building without a main()

Lander Brandt 56 Nov 2, 2022
Xcode Neovim Replacement-ish.

An XCode replacement-ish development environment that aims to be your reliable XCode alternative to develop exciting new [apple] software products ??

null 272 Dec 30, 2022
A more convenient `#[target_feature]` replacement

A more convenient #[target_feature] replacement To get good performance out of SIMD everything on the SIMD codepath must be inlined. With how SIMD is

Koute 3 Apr 10, 2023
Simpler and more powerful replacement for `find`

FindFile (FF) An simple, ergonomic, and powerful replacement for find. Note: this repo is under active development The syntax is (mostly) figured out,

Sam Westerman 4 Jun 20, 2023
A lightweight, no-fuss, drop-in replacement for Rudderstack

Welcome to Stilgar! Stilgar is a lightweight, no-fuss, drop-in replacement for Rudderstack. Key features: Seamlessly compatible with all Rudderstack c

Withings 4 Jul 21, 2023
Drop-in replacement for the Actix Web HTTP Logger middleware

actix-contrib-logger Logger middleware for the Actix Web framework. Actually it's a copy & paste from the official Logger middleware (original source

Mariano Ruiz 5 Aug 28, 2023
Patch binary file using IDA signatures and defined replacement bytes in YAML.

fabricbin Patch binary file using IDA signatures and defined replacement bytes in YAML. Install: cargo install --git https://github.com/makindotcc/fab

makin 3 Oct 24, 2023
mdBook is a utility to create modern online books from Markdown files.

Create book from markdown files. Like Gitbook but implemented in Rust

The Rust Programming Language 11.6k Jan 4, 2023
Cold Clear 2 is a modern Tetris versus bot and a complete rewrite and evolution of Cold Clear.

Cold Clear 2 Cold Clear 2 is a modern Tetris versus bot and a complete rewrite and evolution of Cold Clear. It implements the Tetris Bot Protocol for

Mark Carlson 27 Dec 28, 2022
Modern file system navigation tool on Unix

monat -- Modern file system Navigator 简体中文 Introduction monat is a Unix shell auxiliary command focusing on the navigation of the file system, especia

Pavinberg 8 May 10, 2022