flutter_loro_ffi 0.1.0 copy "flutter_loro_ffi: ^0.1.0" to clipboard
flutter_loro_ffi: ^0.1.0 copied to clipboard

discontinued

Flutter plugin for Loro FFI bindings

Flutter Loro FFI #

Flutter插件,用于Loro FFI绑定,提供高性能、易用的CRDT文档管理接口。

🌟 特性 #

  • 高性能:基于Rust Loro库构建,效率极高
  • 易用性:面向对象的Dart API,配备完整文档
  • 跨平台:支持Android、iOS、Windows、macOS和Linux
  • CRDT同步:内置支持无冲突复制数据类型
  • 实时协作:支持实时文档同步
  • 可靠性:全面的错误处理和资源管理

📋 要求 #

  • Flutter 2.10.0或更高版本
  • Dart 2.17.0或更高版本

🚀 快速开始 #

安装 #

flutter_loro_ffi添加到您的pubspec.yaml依赖中:

dependencies:
  flutter_loro_ffi: ^0.1.0

然后运行:

flutter pub get

基本使用 #

import 'package:flutter_loro_ffi/loro_ffi.dart';

void main() {
  // 创建文档实例
  final doc = LoroDoc();
  
  try {
    // 设置PeerID(可选,用于区分不同设备/用户)
    doc.setPeerId(12345);
    
    // 插入文本
    doc.insertText("Hello, ", 0);
    doc.insertText("World!", 7);
    
    // 提交事务
    doc.commit();
    
    // 获取文本内容
    final text = doc.getText();
    print("文档内容: $text"); // 输出: 文档内容: Hello, World!
    
    // 导出更新(用于同步)
    final updates = doc.exportAllUpdates();
    print("导出的更新大小: ${updates.length} 字节");
    
    // 创建另一个文档并导入更新
    final doc2 = LoroDoc();
    doc2.import(updates);
    print("同步后的文档内容: ${doc2.getText()}"); // 输出: 同步后的文档内容: Hello, World!
    
    doc2.dispose();
  } finally {
    // 释放资源
    doc.dispose();
  }
}

📚 API参考 #

LoroDoc #

构造函数

LoroDoc()

创建一个新的Loro文档实例。

方法

insertText(String text, int position)

在指定位置插入文本。

  • 参数:
    • text: 要插入的文本内容
    • position: 插入位置的索引
deleteText(int start, int length)

从指定位置开始删除指定长度的文本。

  • 参数:
    • start: 删除起始位置的索引
    • length: 要删除的文本长度
getText()

获取当前文档的文本内容。

  • 返回: 当前文档的文本内容
commit()

提交当前事务,将所有操作持久化。

exportAllUpdates()

导出文档的所有更新,用于同步到其他设备。

  • 返回: 包含所有更新的字节列表
import(List<int> data)

从其他设备导入更新,用于同步文档。

  • 参数:
    • data: 包含更新数据的字节列表
setPeerId(int peerId)

设置文档的PeerID,用于标识不同的设备或用户。

  • 参数:
    • peerId: 要设置的PeerID
getPeerId()

获取当前文档的PeerID。

  • 返回: 当前文档的PeerID
dispose()

释放文档资源,必须在不再使用文档时调用。

🧪 测试 #

运行测试 #

flutter test

运行带覆盖率的测试 #

flutter test --coverage
genhtml -o coverage coverage/lcov.info

基准测试 #

dart test/benchmark_test.dart

📱 平台支持 #

平台 架构
Android arm64-v8a, armeabi-v7a
iOS arm64, x86_64
Windows x64
macOS x64, arm64
Linux x64

🔧 开发 #

构建原生库 #

# 为所有平台构建
flutter build ffi

# 为特定平台构建
flutter build ffi --target-platform android-arm64

生成文档 #

dart doc

📝 示例 #

查看example目录,获取一个完整的Flutter应用,演示flutter_loro_ffi的使用方法。

🔗 相关链接 #

📄 许可证 #

本项目采用MIT许可证 - 详见LICENSE文件。

🤝 贡献 #

欢迎贡献!请随时提交Pull Request。

📧 支持 #

如果您遇到任何问题或有疑问,请提交issue


由Loro团队用心制作 ❤️

0
likes
140
points
24
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter plugin for Loro FFI bindings

Repository (GitHub)

License

MIT (license)

Dependencies

ffi, flutter, path

More

Packages that depend on flutter_loro_ffi

Packages that implement flutter_loro_ffi