- Add a `bench` feature that exposes a hasher benchmark.
- Make the hasher read up to the next piece end and hash everything it
reads, instead of hashing one byte at a time. This was a 4x
improvement on the benchmark. (Terrible code == easy wins!)
type: performance
The `data` crate is intended to be used as the manifest serialization
and deserialization format.
This blog post describes the motivation and goals for this crate:
https://rodarmor.com/blog/data
type: added
- Combine test Metainfo values into a small number of globally available
values.
- Serialize update URLs as `URL` insted of `String`.
- Add additional `show` tests
type: reform
Add a '--ignore' flag that, when passed, causes `imdl torretn create` to
skip files listed in `.gitignore`, `.ignore`, `.git/info/exclude`, and
`git config --get core.excludesFile`.
Also switches from the `walkdir` crate to the `ignore` crate, which uses
`walkdir` internally, and which handles `.gitignore` and `.ignore`
files.
This changes the behavior of `-include-hidden` on MacOS to no longer
skip entries with the hidden attribute set, due to `ignore` not exposing
`walkdir`'s filter functionality.
A PR[0] is pending to add filtering to `ignore`, so hopefully this
functionality can be re-implemented soon.
[0] https://github.com/BurntSushi/ripgrep/pull/1557
type: added
fixes:
- https://github.com/casey/intermodal/issues/378
Generates man pages and book entries for all subcommands, and keeps the
commands index in the book up to date.
There is much cursed roff munging in this diff.
type: documentation
Uses a crate in `bin/demo` to output a demo script of commands, with a
per-character and per-line delay, and a dummy prompt. Capture output
and render to a gif.
type: documentation
The `0.1.0` release is coming up, and a prerequisite to publish to
crates.io is to not depend on any non crates.io dependency.
We're using the `{binary_bytes_per_sec}` formatting spec, which is only
in my fork.
I published my fork to crates.io as `imdl-indicatif`, and this diff
starts depending on that fork.
type: distribution
- Switch to my branch of indicatif on github
- Use binary braille spinner
- Use fine-grained progress bar
- Improve template formatting
- Use SI units for bytes/s
type: changed
Adds the command `imdl` torrent verify` to verify the contents of torrents.
This implementation is extremely naive. It does successfully verify torrents,
but it will produce unsatisfying results when a torrent fails verification. In
particular, it won't give any information about which pieces in a file were
corrupt.
type: added
To include only files that match a glob, pass `--glob GLOB`. To exclude
files that match a glob, pass `--glob GLOB`. Multiple globs may be
passed, with later globs taking precedence over earlier ones.
type: added
When no piece length is provided to imdl torrent create, a piece
length is selected based on the size of the input. The hueristic is
lifted directly from libtorrent.
Also adds a imdl torrent piece-length command, which prints a table
of the piece lengths chosen at different content sizes, which is useful
for understanding and debugging the piece length selection algorithm.
type: added
The `imdl torrent show` command displays information about on-disk
torrent files. The formatting of the command's output is copied from
torf, an excellent command-line torrent creator, editor, and viewer.
type: added
Colored output can be controlled on the command line with
`--use-color auto|always|never`. The default is `auto`, which enables
color if `imdl` detects that it is printing to a terminal.
Color can be disabled entirely by setting the `NO_COLOR` environment
variable.
type: added