DataFlora 1.0.0
The owner has unlisted this package.
This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package DataFlora --version 1.0.0
NuGet\Install-Package DataFlora -Version 1.0.0
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="DataFlora" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DataFlora" Version="1.0.0" />
<PackageReference Include="DataFlora" />
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 DataFlora --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DataFlora, 1.0.0"
#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 DataFlora@1.0.0
#: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=DataFlora&version=1.0.0
#tool nuget:?package=DataFlora&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DataFlora 🌿
Супер простая и быстрая база данных для .NET 8
DataFlora — легковесная embedded база данных с поддержкой тегов, версионирования и истории изменений.
✨ Особенности
- 🏷️ Теги — гибкий поиск по меткам
- 📜 Версионирование — полная история изменений
- 🔐 Шифрование — встроенная защита данных
- 📦 Сжатие — компактное хранение (Zstd)
- ⚡ Быстрый поиск — по тегам, датам, содержимому
- 🎯 Zero-config — работает из коробки
📦 Установка
dotnet add package DataFlora
🚀 Быстрый старт
using DataFlora;
// Открыть базу данных
var db = DataFloraDatabase.Open("./mydata");
// Сохранить данные с тегами
var id = db.Save("Hello, DataFlora!", tags: "greeting, demo");
// Получить данные
string? text = db.GetString(id);
// Найти по тегам
var results = db.Find("greeting");
📖 Примеры использования
Работа с текстом
// Сохранение с автоматическим ID
Guid id = db.Save("Мой текст", tags: "заметки, важное");
// Сохранение с указанным ID
Guid myId = Guid.NewGuid();
db.Save(myId, "Контент", tags: "статья, draft");
// Получение
string? content = db.GetString(id);
Работа с JSON
var user = new User { Name = "Alice", Age = 25 };
// Сохранить объект
Guid id = db.SaveJson(user, tags: "user, active");
// Получить объект
User? loaded = db.GetJson<User>(id);
Работа с файлами
// Сохранить файл (теги генерируются автоматически из имени/расширения)
Guid id = db.SaveFile("document.pdf", tags: "docs, report");
// Получить как поток
using Stream? stream = db.GetStream(id);
🔍 Поиск
// Поиск по тегам
var notes = db.Find("заметки");
// Поиск по нескольким тегам
var important = db.Find("важное, срочное");
// Поиск по дате
var recent = db.FindByDate(
from: DateTime.Now.AddDays(-7),
to: DateTime.Now,
take: 50
);
// Проверка существования
bool exists = db.Exists(id);
📜 Версионирование
// Обновить с сохранением истории
db.Update(id, "Новый контент", tags: "updated", changeDescription: "Исправлены опечатки");
// Получить историю изменений
IEnumerable<DataVersion> history = db.GetHistory(id);
foreach (var version in history)
{
Console.WriteLine($"v{version.Version}: {version.Description} ({version.CreatedAt})");
}
// Получить конкретную версию
byte[]? oldVersion = db.GetVersion(id, version: 1);
⚙️ Конфигурация
Fluent Builder
var db = new DataFloraConfigBuilder("./data")
.WithCompression(level: 22) // Brotli сжатие 0-22
.WithEncryption(myKey) // AES шифрование
.WithCacheSize(megabytes: 256) // Размер кэша
.WithVersioning(maxVersions: 100) // Макс. версий на запись
.Build();
Через конфиг
var config = DataFloraConfig.Default("./data") with
{
EnableCompression = true,
EnableEncryption = true,
EncryptionKey = myKey,
CacheSizeMb = 128
};
var db = IDataFloraDatabase.Open(config);
📊 Метаданные
// Полная информация о записи
DataInfo? info = db.GetInfo(id);
Console.WriteLine($"Создано: {info.CreatedAt}");
Console.WriteLine($"Теги: {info.Tags}");
Console.WriteLine($"Формат: {info.Format}");
// Полная запись с данными
DataRecord? record = db.GetRecord(id);
🔄 Сравнение данных
byte[] newData = GetUpdatedData();
CompareResult result = db.Compare(id, newData, newTags: "updated");
if (result.HasChanges)
{
db.Update(id, newData, tags: "updated");
}
📦 Пакетные операции
var items = new[]
{
(Data: Encoding.UTF8.GetBytes("Item 1"), Tags: "batch, item"),
(Data: Encoding.UTF8.GetBytes("Item 2"), Tags: "batch, item"),
(Data: Encoding.UTF8.GetBytes("Item 3"), Tags: "batch, item"),
};
// Параллельное сохранение
IEnumerable<Guid> ids = db.SaveBatch(items);
📁 Структура данных
./mydata/
├── data/ # Файлы данных
├── indexes/ # Индексы для поиска
└── versions/ # История версий
🎯 Форматы данных
| Формат | Описание |
|---|---|
| DataFormat.Binary | Бинарные данные |
| DataFormat.Text | Текст (UTF-8) |
| DataFormat.Json | JSON документы |
📄 Лицензия
MIT License — используйте свободно!
---
Это README покрывает все основные функции вашей библиотеки и даёт пользователям понятные примеры для быстрого старта! 🚀
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
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 |
|---|
Initial release:
- Tag-based storage and search
- Full versioning support
- Change history tracking
- Brotli compression
- AES encryption
- Fluent configuration API