I am proud to announce that I have pushed Asuran version 0.1.0 to
crates.io!
What this means
In a practical sense, this release mostly signifies that the core API
has settled down enough that I am no longer scared of adding new, more
complicated, (and more powerful) features.
That doesn't mean asuran is completely useless though, it already has
many of the core features you would come to expect from an archiver. It
is actually functional, and can make and restore archives. It even has
several knobs for you to tweak!
Not a stability promise
While I will try to avoid changes that break backwards compatibility,
and will likely entirely avoid changes that break the ability to read
existing repos until at least 0.2.0, there are currently no promises
about breaking API changes. I will try to keep these to a minium, but
asuran is still experimental software.
On that note, please do not use this as an excuse to rely solely on
asuran. It will eat your laundry if you do so.
Testing
Asuran is currently continuously tested on 64bit linux, macos, and
windows. All of these are first class support targets, and any test
failures on any of them will hold up a release.
Test coverage is decent at the moment but not great. I would like to get
automated fuzz testing setup for at least linux in the very near future.
What asuran can do right now
Asuran can create, store, list, and extract archives from within a
repository on the local filesystem, with a few other niceties.
Take a look at the output of asuran-cli --help
:
Asuran-CLI 0.1.0-6405ca0 2020-04-23
Nathan McCarty <nathan@mccarty.io>
Indicates which subcommand the user has chosen
USAGE:
asuran-cli [FLAGS] <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-q, --quiet Squelch non-logging operations
-V, --version Prints version information
SUBCOMMANDS:
bench-crypto Runs benchmarks on all combinations of asuran's supported crypto primitives
contents Lists the contents of an archive, with optional glob filters
extract Extracts an archive from a repository
help Prints this message or the help of the given subcommand(s)
list Provides a listing of the archives in a repository
new Creates a new repository
store Creates a new archive in a repository
Road Ahead
Now that I am confident the core repository API isnt going to be
changing much, its time to work on the more exciting features.
First in line is the S3 backend, I have begun working on it in earnest.
Following that will likely be the ability to push/pull archives between
repositories.
Another important step I will be taking in the near future will be to
provide hostname/machineid based caching of the last times files were
modified, so that reprocessing of files can be avoided when possible.
Call for Participation
If you are interested in participating, please do!
Take a look at our
CONTRIBUTING.md
an issue, or join our
matrix
chat.