x_storage_core 0.2.1 copy "x_storage_core: ^0.2.1" to clipboard
x_storage_core: ^0.2.1 copied to clipboard

Core package for x_storage providing XStorageProvider and other base functionality

x_storage_core #

XStorage is a Flutter package that provides a unified interface for handling different storage services (Firebase Storage, local file system, etc.). This package provides the core functionality of XStorage.

Features #

  • Unified storage interface (XStorageProvider)
  • Base implementations for various storage providers
  • Basic file operations (read, write, delete, existence check)
  • URI-based file management

Getting Started #

Installation #

dependencies:
  x_storage_core: ^0.0.1

Basic Usage #

import 'package:x_storage_core/x_storage_core.dart';

// Create XStorage instance
final storage = XStorage();

// Register a provider (example: custom provider)
class MyStorageProvider extends XStorageProvider with NetworkProviderMixin {
  @override
  String get scheme => 'my_storage';

  @override
  String get rootUrl => 'https://example.com';

  // Implement other methods...
}

// Register the provider
storage.registerProvider(MyStorageProvider());

// Save a file
await storage.saveFile(
  XUri.create('my_storage', 'path/to/file.txt'),
  Uint8List.fromList([/* data */]),
);

// Load a file
final data = await storage.loadFile(
  XUri.create('my_storage', 'path/to/file.txt'),
);

// Delete a file
await storage.deleteFile(
  XUri.create('my_storage', 'path/to/file.txt'),
);

Creating Custom Providers #

To create a provider for a new storage service, extend XStorageProvider and implement the required methods:

class CustomStorageProvider extends XStorageProvider with NetworkProviderMixin {
  @override
  String get scheme => 'custom';

  @override
  String get rootUrl => 'https://custom-storage.example.com';

  @override
  Future<void> saveFile(XUri uri, Uint8List data) async {
    // Implementation...
  }

  @override
  Future<Uint8List?> loadFile(XUri uri) async {
    // Implementation...
  }

  @override
  Future<void> deleteFile(XUri uri) async {
    // Implementation...
  }
}

Available Mixins #

  • NetworkProviderMixin: For network-based storage
  • FileProviderMixin: For file system-based storage
  • AssetProviderMixin: For Flutter assets

License #

This project is licensed under the MIT License - see the LICENSE file for details.

0
likes
130
points
53
downloads

Publisher

unverified uploader

Weekly Downloads

Core package for x_storage providing XStorageProvider and other base functionality

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

cross_file, flutter, type_result

More

Packages that depend on x_storage_core