https://github.com/rmpr/brows3rs
https://github.com/rmpr/brows3rs
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rmpr/brows3rs
- Owner: RMPR
- Created: 2024-01-27T11:25:48.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-11-11T14:06:41.000Z (over 1 year ago)
- Last Synced: 2025-12-30T11:59:09.739Z (6 months ago)
- Language: Rust
- Size: 103 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Brows3rs
Implementation in 🦀 of a simple web interface to browse a minio bucket.
## Build
Download cargo and rust toolchain - https://doc.rust-lang.org/book/ch01-01-installation.html.
From repository root:
```sh
cargo build
```
## Usage
Check the top level `Cargo.toml` file for available binary crates (`[[bin]]` sections). Run the built/downloaded binary with `--help`.
Before running the binary, make sure you have the following environment variables set:
```sh
S3_HOSTNAME
S3_ACCESSKEY
S3_SECRETKEY
S3_BUCKET
```
```sh
./target/debug/downloader
```
To list all artifacts:
```sh
./target/debug/downloader list
```
To list in a UNIX style `tree` view:
```sh
./target/debug/downloader list tree
```
### Frontend
Building the frontend is done with:
```
cargo build --target wasm32-unknown-unknown
```
To run the browser with the results:
```
trunk serve
```
## Tasks
13th September, 2024
- Make http server in API project
-- Make following endpoints:
--- LIST - returns a list of all artifacts
--- DOWNLOAD - downloads all artifacts
- Make requests from frontend to http server.
- Add some unit tests
## Notes
The rust-s3 library that we use depends on openssl-sys crate, which cannot be compiled to wasm32
target. Additionally, many features in tokio cannot be compiled to wasm32 target, so even the
official amazon s3 sdk for rust does not compile to wasm32 target. Given these limitations, the
future path is to separate out the project into two parts:
- api: Compiled for x86-64 target and uses tokio, s3 libraries etc. This will make a http server.
- frontend: Compiled for wasm32 target and makes requests to the API.