# RFS Client Rhai Examples This folder contains Rhai examples that use the SAL RFS client wrappers registered by `sal::rhai::register(&mut engine)` and executed by the `herodo` binary. ## Quick start Run the auth + upload + download example (uses hardcoded credentials and `/etc/hosts` as input): ```bash cargo run -p herodo -- examples/rfsclient/auth_and_upload.rhai ``` By default, the script: - Uses base URL `http://127.0.0.1:8080` - Uses credentials `user` / `password` - Uploads the file `/etc/hosts` - Downloads to `/tmp/rfs_example_out.txt` To customize, edit `examples/rfsclient/auth_and_upload.rhai` near the top and change `BASE_URL`, `USER`, `PASS`, and file paths. ## What the example does - Creates the RFS client: `rfs_create_client(BASE_URL, USER, PASS, TIMEOUT)` - Health check: `rfs_health_check()` - Authenticates: `rfs_authenticate()` - Uploads a file: `rfs_upload_file(local_path, chunk_size, verify)` → returns file hash - Downloads it back: `rfs_download_file(file_id_or_hash, dest_path, verify)` → returns unit (throws on error) See `examples/rfsclient/auth_and_upload.rhai` for details. ## Using the Rust client directly (optional) If you want to use the Rust API (without Rhai), depend on `sal-rfs-client` and see: - `packages/clients/rfsclient/src/client.rs` (`RfsClient`) - `packages/clients/rfsclient/src/types.rs` (config and option types) - `packages/clients/rfsclient/examples/` (example usage) ## Troubleshooting - Auth failures: verify credentials and that the server requires/authenticates them. - Connection errors: verify the base URL is reachable from your machine.