47 Commits

Author SHA1 Message Date
Marcus Holland-Moritz
146c39fe70 feat: support for displaying/serializing library dependencies (gh #207) 2024-04-01 15:58:02 +02:00
Marcus Holland-Moritz
f5ac66503d fix(windows): hopefully fix path tweaking / canonicalization 2024-02-13 01:12:18 +01:00
Marcus Holland-Moritz
3d17b2c75a fix: clean up blocksize implementation
It helps to RTFM. `st_blocks` and `st_blksize` are *not* related.
`st_blksize` *really is* the optimal I/O block size. `st_blocks`
is *always* given in multiples of 512 bytes.
2024-02-12 18:29:09 +01:00
Marcus Holland-Moritz
f1f55dd48c feat(dwarfs): add readahead option
The implementation is extremely simple for now and readahead is off
by default. When sequentially accessing large files, the speedup can
be significant, though.
2024-02-12 14:34:40 +01:00
Marcus Holland-Moritz
5460900c97 feat(dwarfs): make block size configurable, mostly for macOS
macFUSE derives the "optimal" read size from `st_blksize`, which
results in very sub-optimal (small) read requests on macOS. This
adds an option to configure the block size and sets the default
sufficiently high on macOS.
2024-02-12 00:37:11 +01:00
Marcus Holland-Moritz
b5cbc02110 fix: always use delayed loading for WinFsp DLL 2024-02-08 10:20:14 +01:00
Marcus Holland-Moritz
a97161e6da feat: support building on OSX (should address gh #132) 2024-01-30 21:59:54 +01:00
Marcus Holland-Moritz
cad2f33a65 chore: check include path of fuse_lowlevel.h 2024-01-23 15:07:40 +01:00
Marcus Holland-Moritz
c6241810ea refactor: ensure FUSE driver options are standard layout 2024-01-20 12:46:40 +01:00
Marcus Holland-Moritz
06e1910554 refactor: pass os_access to worker_group and other classes 2024-01-20 12:46:40 +01:00
Marcus Holland-Moritz
6994f9691e feat: add support for built-in manual pages 2024-01-20 12:46:40 +01:00
Marcus Holland-Moritz
96a0ae1156 feat(logging): consolidate log option handling, add --log-with-context 2024-01-15 22:08:44 +01:00
Marcus Holland-Moritz
cc583dade5 feat(dwarfs): add diagnostics about missing fusermount programs 2024-01-09 15:46:48 +01:00
Marcus Holland-Moritz
c6ee3c8411 refactor(dwarfs): clean up fuse driver implementation 2024-01-06 17:28:27 +01:00
Marcus Holland-Moritz
f7336ba043 refactor: clean up & simplify error handling 2024-01-06 17:28:27 +01:00
Marcus Holland-Moritz
b5e6398c96 refactor: add parse_image_offset + test 2024-01-06 17:28:27 +01:00
Marcus Holland-Moritz
fea0352f67 test: test command line tool usage / help 2023-12-28 19:24:46 +01:00
Marcus Holland-Moritz
7b2029674d refactor: simplify calling *_main() from tests even more 2023-12-28 19:02:52 +01:00
Marcus Holland-Moritz
676e46dd60 chore: add another *_main overload that always accepts utf8 args
This is mostly for convenient use from within the test suite.
2023-12-28 19:02:03 +01:00
Marcus Holland-Moritz
148cee8400 refactor(dwarfs): use userdata references instead of pointers 2023-12-28 19:02:03 +01:00
Marcus Holland-Moritz
298e23973a refactor: more iolayer abstraction 2023-12-28 19:02:03 +01:00
Marcus Holland-Moritz
11da064a1a fix: root inode should also have inodeinfo xattr 2023-12-22 22:55:15 +01:00
Marcus Holland-Moritz
ad9bae8618 fix: ensure common options (like --log-level) are consistent 2023-12-19 16:32:48 +01:00
Marcus Holland-Moritz
447320b15a refactor(filesystem_v2): simplify constructor 2023-12-19 16:32:48 +01:00
Marcus Holland-Moritz
07412cb7c0 feat(fuse-driver): implement dwarfs.inodeinfo xattr 2023-12-17 23:02:28 +01:00
Marcus Holland-Moritz
6177090eca Don't enable readlink if filesystem has no symlinks
This reduces the number of `getattr` calls with WinFsp and should
improve performance on Windows.
2023-08-11 18:18:11 +02:00
Marcus Holland-Moritz
d4d65a4d99 Fix canonical path on Windows when accessing mounted DwarFS image 2023-08-11 18:18:11 +02:00
Marcus Holland-Moritz
9915b3e1f4 Factor out block_range and iovec_read_buf types 2023-07-12 18:10:16 +02:00
Marcus Holland-Moritz
859195c24e Better Unicode argument handling in FUSE driver on Windows 2023-07-11 01:23:12 +02:00
Marcus Holland-Moritz
35d27e8e24 Clean up FUSE driver 2023-07-10 23:44:36 +02:00
Marcus Holland-Moritz
e6cec261e5 Define O_ACCMODE if necessary (e.g. on Windows) 2023-07-01 15:08:15 +02:00
Marcus Holland-Moritz
c3de719134 Fix access mode check in open() call 2023-07-01 14:46:32 +02:00
Marcus Holland-Moritz
e6dc6731e7 Add listxattr for Linux, remove xattr support for Windows 2023-07-01 11:30:02 +02:00
Marcus Holland-Moritz
6f210daf93 Implement rename operation for WinFsp to work around crash 2023-06-30 22:49:45 +02:00
Marcus Holland-Moritz
5ae78b9315 Add file system performance monitor 2023-06-29 12:51:28 +02:00
Marcus Holland-Moritz
0c26a57ca5 Fix uninitialized fields in struct stat in getattr call 2023-06-28 15:15:45 +02:00
Marcus Holland-Moritz
77f2d39437 Finally get rid of std::endl 2023-06-27 14:22:05 +02:00
Marcus Holland-Moritz
449d7490ac Suppress extra usage info with WinFsp 2023-06-27 12:07:55 +02:00
Marcus Holland-Moritz
1b1a2b41b4 Use readlink_mode::unix for (WinFsp) FUSE layer 2023-06-26 21:08:28 +02:00
Marcus Holland-Moritz
499dca4551 VCPKG & WINFSP support 2023-06-25 18:27:03 +02:00
Marcus Holland-Moritz
07c310c615 Add listxattr implementation to make EAs work 2023-06-25 09:46:20 +02:00
Marcus Holland-Moritz
3357817e12 Small tweaks to FUSE driver 2023-06-25 09:45:44 +02:00
Marcus Holland-Moritz
de1195e584 WinFsp compatibility 2023-06-24 16:47:12 +02:00
Marcus Holland-Moritz
43d47c028f Support FUSE high-level API (for WinFsp) 2023-06-24 15:27:56 +02:00
Marcus Holland-Moritz
e0c8099b90 WIP file_off_t 2023-06-22 01:14:52 +02:00
Marcus Holland-Moritz
fd157eb611 WIP file_stat 2023-06-22 00:15:26 +02:00
Marcus Holland-Moritz
4681523673 Build universal binary 2023-05-28 16:22:36 +02:00