tree: 7ece31891ffd54d99ef46226803da37ba24f2c5b [path history] [tgz]
  1. examples/
  2. lib/
  3. rust/
  4. tests/
  5. .gitignore
  6. analysis_options.yaml
  7. flutter_rust_bridge.yaml
  8. pubspec.yaml
  9. README.md
bindings/dart/README.md

Apache OpenDALâ„¢ Dart Binding (WIP)

Useful Links

Usage

Api is designed to be like stdlib style.

This is stdlib

import 'dart:io';

void main() async {
  final file = File('file.txt');
  var is_exists = await file.exists();
  print(is_exists);
}

This is opendal

import 'package:opendal/opendal.dart';

void main() async {
  final storage = await Storage.init(schemeStr: "fs", map: {"root": "/tmp"});
  final File = storage.initFile();
  // drop-in
  final file = File('file.txt');
  var is_exists = await file.exists();
  print(is_exists);
}

Test

dart run tests/opendal_test.dart

Development

flutter pub get
flutter_rust_bridge_codegen generate
cd rust
cargo build -r --target x86_64-unknown-linux-gnu # change to your arch, refer to https://doc.rust-lang.org/beta/rustc/platform-support.html

Update generated code

This binding uses https://github.com/fzyzcjy/flutter_rust_bridge, when updating the codegen. First check FLUTTER_RUST_BRIDGE_CODEGEN_VERSION, then pin the version of flutter_rust_bridge in pubspec.yaml and rust/Cargo.toml. Make sure the runtime versions are matched.

License and Trademarks

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation.