Mmzkworks.StorageSharp 0.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Mmzkworks.StorageSharp --version 0.0.1
                    
NuGet\Install-Package Mmzkworks.StorageSharp -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mmzkworks.StorageSharp" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mmzkworks.StorageSharp" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Mmzkworks.StorageSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mmzkworks.StorageSharp --version 0.0.1
                    
#r "nuget: Mmzkworks.StorageSharp, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mmzkworks.StorageSharp@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mmzkworks.StorageSharp&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Mmzkworks.StorageSharp&version=0.0.1
                    
Install as a Cake Tool

StorageSharp

StorageSharpは、単独バイナリファイルとフォルダファイル集合を扱うための柔軟なストレージシステムです。 組み合わせることでファイルシステムとキャッシュ、フォルダファイル集合(Packと呼んでいます)を柔軟に扱うことができます。

機能

ストレージ機能 (IStorage)

  • FileStorage: ファイルシステムベースのストレージ
  • MemoryStorage: メモリベースのストレージ
  • CachedStorage: キャッシュ機能付きストレージ

アーカイブ機能 (IPacks)

  • ZippedPacks: ZIP形式でパッケージを管理するアーカイブ実装

基本的な使用方法

ストレージの使用

// ファイルストレージ
var fileStorage = new FileStorage("StorageDirectory");

// データの書き込み
await fileStorage.WriteAsync("key.txt", data);

// データの読み込み
var data = await fileStorage.ReadAsync("key.txt");

キャッシュ付きストレージの使用

var storage = new CachedStorage(
    cache: new MemoryStorage(), // キャッシュ用ストレージ
    origin: new FileStorage("OriginStorage") // オリジンストレージ
);

ZIPパッケージの使用

var packages = new ZippedPacks(
    new ZippedPacks.Settings("Tmp/Packs/"),
    storage
);

// ディレクトリをアーカイブに追加
var archiveScheme = await packages.Add(directoryPath);

// アーカイブをロード
var loadedPath = await packages.Load(archiveScheme);

// ファイルを使用
// ...

// アーカイブをアンロード
await packages.Unload(archiveScheme);

// アーカイブを削除
await packages.Delete(archiveScheme);

// すべてのアーカイブをリストアップ
var list = await packages.ListAll();

セットアップ

ライブラリとして使用

# プロジェクトに参照を追加
dotnet add reference path/to/StorageSharp.csproj

NuGetパッケージとして使用(将来的に)

dotnet add package StorageSharp

開発環境のセットアップ

# リポジトリをクローン
git clone <repository-url>
cd storageSharp

# 依存関係を復元
dotnet restore

# ビルド
dotnet build

# テスト実行
dotnet test

サンプルプログラムの実行

# サンプルプロジェクトを実行
cd StorageSharp.Samples
dotnet run

プロジェクト構造

storageSharp/
├── StorageSharp/                    # メインライブラリ
│   ├── Storages/
│   │   ├── IStorage.cs              # ストレージインターフェース
│   │   ├── FileStorage.cs           # ファイルストレージ実装
│   │   ├── MemoryStorage.cs         # メモリストレージ実装
│   │   └── CachedStorage.cs         # キャッシュ付きストレージ実装
│   ├── Packs/
│   │   ├── IPacks.cs                # アーカイブインターフェース
│   │   └── ZippedPacks.cs           # ZIPパッケージ実装
│   └── StorageSharp.csproj          # ライブラリプロジェクト
├── StorageSharp.Samples/            # サンプルプロジェクト
│   ├── Program.cs                   # サンプルプログラム
│   ├── StorageSharp.Samples.csproj  # サンプルプロジェクト
│   └── README.md                    # サンプル用README
├── StorageSharp.Tests/              # テストプロジェクト
│   ├── UnitTests/                   # ユニットテスト
│   └── IntegrationTests/            # 統合テスト
├── storageSharp.sln                 # ソリューションファイル
└── README.md                        # このファイル

使用例

基本的なストレージ操作

// ファイルストレージの使用
var fileStorage = new FileStorage("ExampleStorage");
var testData = System.Text.Encoding.UTF8.GetBytes("Hello, StorageSharp!");
await fileStorage.WriteAsync("test.txt", testData);

// メモリストレージの使用
var memoryStorage = new MemoryStorage();
await memoryStorage.WriteAsync("memory-test.txt", testData);

キャッシュ付きストレージの使用

var cache = new MemoryStorage();
var origin = new FileStorage("OriginStorage");
var cachedStorage = new CachedStorage(cache, origin);

// データの書き込み
var data = System.Text.Encoding.UTF8.GetBytes("Cached data example");
await cachedStorage.WriteAsync("cached-file.txt", data);

// 読み込み(キャッシュヒット/ミスが自動管理される)
var readData = await cachedStorage.ReadAsync("cached-file.txt");

ZIPパッケージの使用

var storage = new FileStorage("ZippedPacks");
var packages = new ZippedPacks(
    new ZippedPacks.Settings("Tmp/Packs/"),
    storage
);

// ディレクトリをアーカイブに追加
var archiveScheme = await packages.Add("MyDirectory");

// アーカイブをロードして使用
var loadedPath = await packages.Load(archiveScheme);
// ファイルを使用...
await packages.Unload(archiveScheme);

// アーカイブを削除
await packages.Delete(archiveScheme);

注意事項

  • 一時ファイルは自動的に管理されますが、大量のデータを扱う場合は適切なクリーンアップを考慮してください
  • キャッシュ機能はメモリ使用量に注意して使用してください
  • ZIPパッケージ機能はSharpZipLibライブラリを使用しています

生成AIの利用について

  • 本repoはChatGPT, Cursorによる生成コードを含みます。

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.2 141 7/10/2025
0.1.1 142 7/9/2025
0.1.0 139 7/8/2025
0.0.4 102 6/27/2025
0.0.3 116 6/27/2025
0.0.1 134 6/27/2025