Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rvarago/bfs-rs
A toy FUSE filesystem view over a cloud-hosted storage bucket
https://github.com/rvarago/bfs-rs
Last synced: 1 day ago
JSON representation
A toy FUSE filesystem view over a cloud-hosted storage bucket
- Host: GitHub
- URL: https://github.com/rvarago/bfs-rs
- Owner: rvarago
- License: mit
- Created: 2022-05-07T20:07:04.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-09T18:34:56.000Z (almost 3 years ago)
- Last Synced: 2023-03-05T07:41:50.046Z (almost 2 years ago)
- Language: Rust
- Homepage:
- Size: 48.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bfs-rs
A toy FUSE filesystem view over a cloud-hosted storage bucket.
## Disclaimer
> This is just a toy project of mine, only meant to serve as something fun for me to build with Rust.
> For the time being, I do **not** intend to maintain nor make it production-ready.## Description
`bfs-rs` is a simple readonly, "Filesystem in Userspace" (FUSE) where data gets fetched from a cloud-storage through a backend.
### Operations
- Given a directory, list its files,
- Given a directory or file, show its metadata,
- Given a file, show its content.Where:
- A **directory** is a bucket,
- A **file** is a object in a bucket.## Configuration
So long as the extension matches a format supported by the [config crate](https://github.com/mehcode/config-rs), the user may pick whatever one likes. As an example, here's the schema informally defined as a TOML document:
```toml
[source]
bucket = ""[filesystem]
mountpoint = ""[backend]
provider = ""
endpoint = "" # optional
```## Backends
- [AWS S3](https://aws.amazon.com/s3/).
## Examples
TODO
## Wish-list
- Add missing operations,
- Hide backends behind feature flags.## Instructions
> Dependencies:
>
> - Minimum Supported Rust Version (MSRV): `1.58.0`,
> - FUSE utilities as documented in the [fuser crate](https://github.com/cberner/fuser#dependencies),
> - A Linux box (I've only tried it on Linux boxes).- Lint
```sh
cargo clippy
```- Build
```sh
cargo build
```- Test
```sh
cargo test
```