roas-file-fetcher 0.1.0

Filesystem fetcher for the roas OpenAPI loader, with an async variant and optional YAML support
Documentation

roas-file-fetcher

Filesystem ResourceFetcher and AsyncResourceFetcher for the roas OpenAPI loader.

crates.io docs.rs

FileFetcher is blocking, backed by std::fs::read, for Loader::register_fetcher. Non-file:// URIs are rejected with LoaderError::UnsupportedFetcherUri. I/O errors surface as LoaderError::ReadFile; body parse errors surface as LoaderError::Parse.

Features

  • (default) Sync-only, JSON bodies, no tokio dep.
  • async — also expose AsyncFileFetcher, backed by tokio::fs::read, for Loader::register_async_fetcher. Requires an active tokio runtime when the returned future is awaited. Pulls in tokio with fs + rt features.
  • yaml — accept YAML file bodies in addition to JSON. Selection is by file path extension (.yaml / .yml). Pulls in serde_yaml_ng.
[dependencies]
roas-file-fetcher = { version = "0.1", features = ["async", "yaml"] }

Usage

cargo add roas-file-fetcher
use roas::loader::Loader;
use roas_file_fetcher::FileFetcher;

let mut loader = Loader::new();
loader.register_fetcher("file://", FileFetcher::new());

With the async feature enabled:

use roas::loader::Loader;
use roas_file_fetcher::AsyncFileFetcher;

let mut loader = Loader::new();
loader.register_async_fetcher("file://", AsyncFileFetcher::new());

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.