Files
herolib_rust/examples/rfsclient

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):

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.