Mmzkworks.StorageSharp
0.0.1
There is a newer version of this package available.
See the version list below for details.
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" />
<PackageReference Include="Mmzkworks.StorageSharp" />
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
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#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
#tool nuget:?package=Mmzkworks.StorageSharp&version=0.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
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 | Versions 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.
-
.NETStandard 2.1
- Newtonsoft.Json (>= 13.0.3)
- SharpZipLib (>= 1.4.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.