当前位置: 首页 > 软件库 > 大数据 > 数据存储 >

Apache OpenDAL

自由、轻松、高效地访问数据
授权协议 Apache-2.0
开发语言 Rust
所属分类 大数据、 数据存储
软件类型 开源软件
地区 国产
投 递 者 冉弘化
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

OpenDAL 提供一个统一、简单、高效、可靠、可观察的数据访问层,让开发者可以无缝地使用不同的存储服务,并享受到最佳的用户体验。

OpenDAL 不仅简化了不同存储服务的接口,还提供自动重试、请求优化和可观察性等特性。开发者只需要使用 OpenDAL 就可以无痛访问数十种存储服务,而无需了解和掌握特定 SDK 的细节。

特性:

  • 支持多种存储服务,包括本地文件系统、HDFS、S3、OSS 数十种服务等。
  • 提供统一的数据访问接口,无需关心底层存储细节。
  • 支持多种常用数据操作,包括 read write list 等。
  • 支持自动重试、请求优化、可观察性机制。
  • 零成本,直接映射到 API 调用。
  • 跨语言 bindings: Python, Node.js, C (working on) 等

快速开始

use opendal::Result;
use opendal::layers::LoggingLayer;
use opendal::services;
use opendal::Operator;

#[tokio::main]
async fn main() -> Result<()> {
    // Pick a builder and configure it.
    let mut builder = services::S3::default();
    builder.bucket("test");

    // Init an operator
    let op = Operator::create(builder)?
        // Init with logging layer enabled.
        .layer(LoggingLayer::default())
        .finish();

    // Write data
    op.write("hello.txt", "Hello, World!").await?;

    // Read data
    let bs = op.read("hello.txt").await?;

    // Fetch metadata
    let meta = op.stat("hello.txt").await?;
    let mode = meta.mode();
    let length = meta.content_length();

    // Delete
    op.delete("hello.txt").await?;

    Ok(())
}

更多示例可查看文档

  • 见apache孵化项目 https://incubator.apache.org/projects/#graduated 主要包括: 1、正在孵化的项目 2、从孵化器毕业的项目 3、废弃的项目 关注孵化器中的项目的发展趋势能跟得上apache技术的发展

 相关资料
  • 主要内容:问题起源,Eureka Server设计精妙的注册表存储结构,Eureka Server端优秀的多级缓存机制,总结问题起源 Spring Cloud架构体系中,Eureka是一个至关重要的组件,它扮演着微服务注册中心的角色,所有的服务注册与服务发现,都是依赖Eureka的。 不少初学Spring Cloud的朋友在落地公司生产环境部署时,经常会问: Eureka Server到底要部署几台机器? 我们的系统那么多服务,到底会对Eureka Server产生多大的访问压力? Eureka

  • 问题内容: 我创建了两个视图控制器。我从第一个到第二个创建了一个序列,以传递数据。现在,我想将数据从第二个视图控制器传递给第一个。我经历了许多类似的问题,但由于我缺乏关于放松工作原理的知识,因此无法实现这些问题。 ViewController.swift 这会将数据传递给视图控制器“ viewControllerB”中的dataPassed。 说,现在我想将一些数据从viewControllerB

  • 轻松上传是魔方加密开发的快速上传组件。轻松上传的环境要求: Microsoft Windows 操作系统 Google Chrome 浏览器 使用步骤 安装轻松上传后,您可以通过以下步骤使用: 打开 Windows 资源管理器,选择需要上传的 PHP 文件 按下 CTRL+C 复制文件 打开魔方加密页面 按下 CTRL+V 粘贴文件 等待文件上传 安装方法 点击这里 打开 Chrome 网上应用店

  • 第一节 Go语言安装与测试 轻松友好的安装方式,多平台支持。 第二节 内置基础数据类型 认识Go提供的清晰的数据类型,很清晰,不骗你。 第三节 变量与常量定义 学语言绕不开的变量,当然Go是静态语言,变量都是有固定类型的,程序运行过程中无法改变变量类型。 第四节 控制流程 很简单,只有if,for,switch三种流程,连while都没有。 第五节 数组,切片和字典 内置高级数据类型。如果我们需要

  • Go轻松学是一款学习GoLang的小型学习App。基于Android平台。主要包含Go基础和Go实例两部分。 Go轻松学,可以让你随时随地浏览Go提供的独特功能,本应用提供了翔实的测试例程序,100%测试通过。并且可以根据反馈持续更新。在这里,变量,函数,结构体,指针,并行计算,包和测试都有详细的讲解。 Go基础部分由本人的读书笔记归纳整理而来,而实例部分则由网址http://gobyexampl

  • 为什么选python? 之前的菜鸟系列是基于java的,一年没学其实也忘的差不多了,目前所测的产品部分也是python写的,而且团队也在推广python ,其实就测试人员来说,python也相当受欢迎。易学,易用。翻翻各测试招聘,python出现的概率也颇高。 平台搭建: 前一篇中已经介绍,如果你也想体验一下自动化魅力,那就赶快搭建自己的环境吧~! selenium + python自动化测试环境

  • 本节知识点: 打印URL 将浏览器最大化 设置浏览器固定宽、高 操控浏览器前进、后退 打印URL 上一节讲到,可以将浏览器的title打印出来,这里再讲个简单的,把当前URL打印出来。其实也没啥大用,可以做个凑数的用例。 #coding=utf-8from selenium import webdriverimport time browser = webdriver.Firefox() ur

  • 本节重点: 简单对象的定位       --自动化测试的核心   对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。 那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。 定位对象的目的一般有下面几种 · 操作对象 · 获得对象的属性,