#virtual-filesystem #facade #link #rivia

rivia-vfs

Rivia 虚拟文件系统的高效封装

9 个版本

0.2.6 2024年7月1日
0.2.5 2022年4月4日
0.2.4 2022年3月7日
0.1.5 2022年3月5日
0.0.1 2021年11月20日

#213 in 文件系统

Download history 182/week @ 2024-06-29 12/week @ 2024-07-06 64/week @ 2024-07-27

64 每月下载

MIT/Apache

82KB
894

rivia-vfs

license-badge build codecov crates.io Minimum rustc

Rivia 虚拟文件系统的高效封装

用法

  1. 导入 crate
    [dependencies]
    rivia-vfs = "0.2.6"
    
  2. 使用 crate
    use rivia_vfs::prelude::*;
    
    fn main() {
        // Simply remove this line to default to the real filesystem.
        vfs::set_memfs().unwrap();
    
        let config = load_config();
        assert_eq!(config, "this is a test");
        println!("VFS test passed");
    }
    
    // Load an example application configuration file using VFS.
    // This allows you to test with a memory backed VFS implementation during testing and with
    // the real filesystem during production.
    fn load_config() -> String {
        let dir = PathBuf::from("/etc/xdg");
        vfs::mkdir_p(&dir).unwrap();
        let filepath = dir.mash("rivia.toml");
        vfs::write_all(&filepath, "this is a test").unwrap();
        assert_eq!(vfs::config_dir("rivia.toml").unwrap().to_str().unwrap(), "/etc/xdg");
    
        if let Some(config_dir) = vfs::config_dir("rivia.toml") {
            let path = config_dir.mash("rivia.toml");
            return vfs::read_all(&path).unwrap();
        }
        "".into()
    }
    

Rustc 要求

这个最低 rustc 要求是由对 Rust 的 std::error::Error 处理改进所驱动的

贡献

欢迎提交拉取请求。然而,请理解它们将纯粹根据它们是否符合我对项目的目标/理想来评估。

项目指南:

  • 链式调用 - 确保 Rust 的函数式链式调用风格不会因为添加而受阻
  • 简洁性 - 尽可能简洁地命名,同时不损害清晰度
  • 清晰度 - 尽可能无歧义地命名,同时不损害简洁性
  • 性能 - 保持便利函数尽可能高效,同时指出重大成本
  • 速度 - 提供类似于快速开发语言的舒适函数
  • 舒适度 - 使用与流行语言相似的方式命名和概念

开发环境

自动版本

启用 git 钩,以便在提交时自动增加版本号

cd ~/Projects/rivia-vfs
git config core.hooksPath .githooks

测试

在容器中测试

待定

许可证

本项目采用以下任一许可证

贡献

除非您明确声明,否则您提交给本项目的任何有意贡献,都将根据上述许可证双重许可,没有额外的条款或条件。


待办事项

变更日志

依赖关系

~3MB
~54K SLoC