in core/src/types/scheme.rs [331:403]
fn from_str(s: &str) -> Result<Self, Self::Err> {
let s = s.to_lowercase();
match s.as_str() {
"aliyun_drive" => Ok(Scheme::AliyunDrive),
"atomicserver" => Ok(Scheme::Atomicserver),
"azblob" => Ok(Scheme::Azblob),
"alluxio" => Ok(Scheme::Alluxio),
// Notes:
//
// OpenDAL used to call `azdls` as `azdfs`, we keep it for backward compatibility.
// And abfs is widely used in hadoop ecosystem, keep it for easy to use.
"azdls" | "azdfs" | "abfs" => Ok(Scheme::Azdls),
"b2" => Ok(Scheme::B2),
"cacache" => Ok(Scheme::Cacache),
"compfs" => Ok(Scheme::Compfs),
"cloudflare_kv" => Ok(Scheme::CloudflareKv),
"cos" => Ok(Scheme::Cos),
"d1" => Ok(Scheme::D1),
"dashmap" => Ok(Scheme::Dashmap),
"dropbox" => Ok(Scheme::Dropbox),
"etcd" => Ok(Scheme::Etcd),
"dbfs" => Ok(Scheme::Dbfs),
"fs" => Ok(Scheme::Fs),
"gcs" => Ok(Scheme::Gcs),
"gdrive" => Ok(Scheme::Gdrive),
"ghac" => Ok(Scheme::Ghac),
"gridfs" => Ok(Scheme::Gridfs),
"github" => Ok(Scheme::Github),
"hdfs" => Ok(Scheme::Hdfs),
"http" | "https" => Ok(Scheme::Http),
"huggingface" | "hf" => Ok(Scheme::Huggingface),
"ftp" | "ftps" => Ok(Scheme::Ftp),
"ipfs" | "ipns" => Ok(Scheme::Ipfs),
"ipmfs" => Ok(Scheme::Ipmfs),
"icloud" => Ok(Scheme::Icloud),
"koofr" => Ok(Scheme::Koofr),
"memcached" => Ok(Scheme::Memcached),
"memory" => Ok(Scheme::Memory),
"mysql" => Ok(Scheme::Mysql),
"sqlite" => Ok(Scheme::Sqlite),
"mini_moka" => Ok(Scheme::MiniMoka),
"moka" => Ok(Scheme::Moka),
"monoiofs" => Ok(Scheme::Monoiofs),
"obs" => Ok(Scheme::Obs),
"onedrive" => Ok(Scheme::Onedrive),
"persy" => Ok(Scheme::Persy),
"postgresql" => Ok(Scheme::Postgresql),
"redb" => Ok(Scheme::Redb),
"redis" => Ok(Scheme::Redis),
"rocksdb" => Ok(Scheme::Rocksdb),
"s3" => Ok(Scheme::S3),
"seafile" => Ok(Scheme::Seafile),
"upyun" => Ok(Scheme::Upyun),
"yandex_disk" => Ok(Scheme::YandexDisk),
"pcloud" => Ok(Scheme::Pcloud),
"sftp" => Ok(Scheme::Sftp),
"sled" => Ok(Scheme::Sled),
"swift" => Ok(Scheme::Swift),
"oss" => Ok(Scheme::Oss),
"vercel_artifacts" => Ok(Scheme::VercelArtifacts),
"vercel_blob" => Ok(Scheme::VercelBlob),
"webdav" => Ok(Scheme::Webdav),
"webhdfs" => Ok(Scheme::Webhdfs),
"tikv" => Ok(Scheme::Tikv),
"azfile" => Ok(Scheme::Azfile),
"mongodb" => Ok(Scheme::Mongodb),
"hdfs_native" => Ok(Scheme::HdfsNative),
"surrealdb" => Ok(Scheme::Surrealdb),
"lakefs" => Ok(Scheme::Lakefs),
"nebula_graph" => Ok(Scheme::NebulaGraph),
_ => Ok(Scheme::Custom(Box::leak(s.into_boxed_str()))),
}
}