1
1
mirror of https://github.com/mgree/ffs.git synced 2024-10-26 20:09:03 +03:00
Commit Graph

27 Commits

Author SHA1 Message Date
Michael Greenberg
3620c49795 link video, paper 2021-12-15 19:54:00 -05:00
Michael Greenberg
b9c6644312
Lazy loading (#50)
Lazy implementation is now the default. Use `--eager` to force ffs to construct the entire filesystem on startup.

NB that lazy loading is not the same as lazy parsing. There's still plenty of savings left on the table.

There is some unwelcome code duplication in saving to accommodate type-level jiggery pokery.
2021-10-01 07:57:58 -07:00
Michael Greenberg
35f6bf8188
Fuser 0.9.1 (#49), in anticipation of ffs 0.1.2
Update to fuser=0.9 (i.e., 0.9.1). Update websites, version numbers, etc. for new release.

Finally use `destroy` properly, got rid of the `Drop` impl for `FS`. Drop `AutoUnmount` which wasn't doing anything anyway.

Fixes and improvements to CI, docs, and logging.
2021-09-26 05:54:18 -07:00
Michael Greenberg
cfa9250ac5 update release links 2021-07-29 22:08:56 -04:00
Michael Greenberg
6ed74ee0c7
Timing support (#46)
Benchmarks, in two flavors: real-world benchmarks and synthetic microbenchmarks.

`--time` flag for benchmarking output on stderr.

Using R to generate pretty graphs. Some overhaul of build scripts and artifacts, with the hope of simplifying the release system.
2021-07-29 17:55:53 -07:00
Michael Greenberg
b651c9c1ac
Exit status (#44)
Unify exit status (0=success, 1=fs error, 2=cli error).

Documented and tested; one test is disabled due to an upstream error masking.
2021-07-21 08:10:42 -07:00
Michael Greenberg
6668f60068 release 0.1.1 2021-07-15 14:47:17 -04:00
Michael Greenberg
85b1ac6da9
Better, configurable name munging (#41)
A new flag `--munge [rename|filter]` controls how a name munging will work.

Name munging only applies to fields named '.', '..', containing a NUL byte, or containing a forward slash '/'.

The `rename` option (the default) will change '.' to '_.' and '..' to '_..'; each NUL byte turns into '_NUL_' and each slash turns into '_SLASH_'.

This greatly simplified policy means that spaces and other special characters should work just fine in field names now.
2021-07-08 08:55:44 -07:00
Michael Greenberg
a1d5718ac9
--new flag for creating files from empty (#38)
Running `--new FILE.EXT` will:

- infer the output format form `EXT`
- use `FILE.EXT` as the output
- start with a single, empty, named directory (but allocate a bit more space)

In implementing this, I realized that introducing metadata (fad45bed4b) meant we no longer inferred types automatically. I added a type `Typ::Auto` and some inference code.
2021-07-04 18:19:31 -07:00
Michael Greenberg
7249ae95df
Pretty printing (#35)
Add --pretty flag, tests, docs.

Resolves #33.
2021-07-03 16:40:01 -07:00
Michael Greenberg
c6355e9812 clarify manpage 2021-07-01 21:59:06 -04:00
Michael Greenberg
fad45bed4b
Manage metadata using extended attributes (#30)
Extended attributes in `user.type` track the type of files and directories. Users can update these to alter the metadata.

Loading files records types; serialization tries to use them (but will default to strings or bytes if it can't interpret the file appropriately).

In particular, it's now possible to convert between both kinds of directories (list and named).

This isn't a long term solution, because extended attributes have no real affordances---it's not obvious that they even exist, and even once you see `user.type`, it's obvious what it means or what values it has. #2 has other ideas about ways to represent and manipulate metadata.

All of this comes with a few new flags and some brittle file ignoring behavior (macOS will generate `._*` files to hold extended attributes on filesystems that don't support them). The man page is updated with detail on the data model, and now the manpage is part of the website proper.
2021-07-01 18:52:53 -07:00
Michael Greenberg
8a65bf6fdc whoops, markdown is hard 2021-06-29 09:37:35 -04:00
Michael Greenberg
61d10c4db4 demo gif 2021-06-29 09:35:44 -04:00
Michael Greenberg
8331ccecdd cleaner site [ci skip] 2021-06-25 17:11:40 -04:00
Michael Greenberg
3814b9ffb3 link to pre-release builds [ci skip] 2021-06-25 15:29:41 -04:00
Michael Greenberg
13ee14bc6b scale images 2021-06-25 15:26:58 -04:00
Michael Greenberg
062f45b460 icons for downloads [ci skip] 2021-06-25 15:24:03 -04:00
Michael Greenberg
1af00aaabb links to latest builds [ci skip] 2021-06-25 15:16:23 -04:00
Michael Greenberg
d7e8669f2d try to show gh link [ci skip] 2021-06-25 15:09:33 -04:00
Michael Greenberg
6482909d90 update website [ci skip] 2021-06-25 14:55:55 -04:00
Michael Greenberg
b4d2230519 cleaner path handling 2021-06-25 14:41:17 -04:00
Michael Greenberg
07f90fcf3c Set theme jekyll-theme-tactile 2021-06-25 11:29:28 -07:00
Michael Greenberg
3847d8ca5d note, triggering action 2021-06-25 14:25:17 -04:00
Michael Greenberg
43fb4c8229 link to release 2021-06-24 19:57:10 -04:00
Michael Greenberg
0a8cf187d2 update page [ci skip] 2021-06-24 13:25:04 -04:00
Michael Greenberg
8024d29866
First cut at webpage (#26) 2021-06-24 10:18:04 -07:00