DataFac.Storage.RocksDb
0.64.18
See the version list below for details.
dotnet add package DataFac.Storage.RocksDb --version 0.64.18
NuGet\Install-Package DataFac.Storage.RocksDb -Version 0.64.18
<PackageReference Include="DataFac.Storage.RocksDb" Version="0.64.18" />
<PackageVersion Include="DataFac.Storage.RocksDb" Version="0.64.18" />
<PackageReference Include="DataFac.Storage.RocksDb" />
paket add DataFac.Storage.RocksDb --version 0.64.18
#r "nuget: DataFac.Storage.RocksDb, 0.64.18"
#addin nuget:?package=DataFac.Storage.RocksDb&version=0.64.18
#tool nuget:?package=DataFac.Storage.RocksDb&version=0.64.18
Warning: This is pre-release software under active development. Breaking changes may occur.
DTOMaker
This repo includes model-driven compile-time source generators for quickly creating DTOs (Data Transport Objects) supporting the following serialization schemes:
- MessagePack
- MemBlocks
- JSON (NewtonSoft)
and related POCOs (Plain Old C# Objects).
Workflow
---
title: Workflow
---
flowchart LR
def(Define models e.g. IMyDTO.cs)
ref1(Reference DTOMaker.Models.*)
ref2(Reference DTOMaker.Runtime.*)
ref3(Reference one or more source generators e.g. DTOMaker.MessagePack)
bld(VS/Code/MSBuild)
pkg(Assembly)
def-->ref1
def-->ref2
def-->ref3
ref1-->bld
ref2-->bld
ref3-->bld
bld-->pkg
Models are defined as C# interfaces with additional attributes. Here's a trivial example:
[Entity]
public interface IMyFirstDTO
{
[Member(1)] string Name { get; }
}
If using the MessagePack source generator, the following implmentation will be generated (simplified):
[MessagePackObject]
public sealed class MyFirstDTO : IMyFirstDTO:
{
[Key(1)] string Name { get; set; }
}
Included Packages
This repo includes the following packages:
DTOMaker.Models
Attributes for defining simple data models as interfaces in C#.
DTOMaker.MessagePack
A source generator that creates MessagePack DTOs (Data Transport Objects). See https://github.com/MessagePack-CSharp/MessagePack-CSharp.
DTOMaker.Models.MessagePack
Additional attributes used by the DTOMaker.MessagePack source generator, to manage MessagePack entity and member keys.
DTOMaker.MemBlocks
Generates DTOs whose internal data is a single memory block (Memory<byte>). Property getters and setters decode and encode values directly to the block with little-endian (default) or big-endian byte ordering.
DTOMaker.Models.MemBlocks
Additional attributes used by the DTOMaker.MemBlocks source generator, to manage entity and member memory layout.
DTOMaker.CSPoco
Generates basic POCOs (Plain Old C# Objects) that implement the model interfaces.
DTOMaker.CSRecord (.NET 8+)
Generates C# records that implement the model interfaces.
DTOMaker.Runtime
Common types used at runtime by DTOMaker generated entities.
Model features
- Member value types: Boolean, S/Byte, U/Int16/32/64/128, Double, Single, Half, Char, Guid, Decimal
- String member types.
- Binary member types:
- Octets (model interfaces, CSRecord, MemBlocks)
- ReadOnlyMemory<byte> (MessagePack)
- polymorphic types
- entity members
- Built-in freezability (mutable until frozen) support
- [Obsolete] members
- Fixed length arrays of above value types.
- IEquatable<T> support
- Templates as testable code, template-to-generator processing.
MemBlocks features
- auto-embedded string, binary and entity members when encoded ⇐ 62 bytes.
- fixed-length string and binary member types.
!Limitations
Single compilation unit
All models and generated DTOs are contained within a single assembly. Models cannot reference types in other projects or pacakges (other than native types). Generated classes are partial, which can help you mitigate the single assembly constraint.
Development
In progress
- Json (NewtonSoft) generator
Coming soon
- Json (System.Text) generator
- upgrade source generators to IIncrementalGenerator
- global interface equality comparer
- reservation (hidden members)
- Orleans generator
- ProtobufNet 3.0 generator
- MessagePack 3.x generator
- NetStrux generator
- MemBlocks compact layout method
- Enum data types. Workaround - enums can be implemented with an underlying integer property and a cast.
- MemBlocks nullable types. Workaround - T? can be implemented with a pair of members (Boolean, T).
Coming later
- custom struct members (to avoid primitive obsession)
- Google Protobuf .proto generation
- model.json generation
- command-line alternative
- generic model patterns: lists, trees, unions, etc.
- variable length arrays
- logical value equality
- Rune member types
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 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 is compatible. 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DataFac.Storage (>= 0.64.18)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- RocksDB (>= 9.10.0.55496)
- System.Memory (>= 4.6.3)
- System.Threading.Channels (>= 9.0.4)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net8.0
- DataFac.Storage (>= 0.64.18)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- RocksDB (>= 9.10.0.55496)
- System.Memory (>= 4.6.3)
- System.Threading.Channels (>= 9.0.4)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net9.0
- DataFac.Storage (>= 0.64.18)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- RocksDB (>= 9.10.0.55496)
- System.Memory (>= 4.6.3)
- System.Threading.Channels (>= 9.0.4)
- System.Threading.Tasks.Extensions (>= 4.6.3)
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.67.3-dev | 35 | 7/7/2025 |
0.67.1-dev | 274 | 6/10/2025 |
0.66.18 | 235 | 6/9/2025 |
0.66.17-dev | 207 | 6/9/2025 |
0.66.16-dev | 106 | 6/8/2025 |
0.66.14-dev | 62 | 6/7/2025 |
0.66.13-dev | 128 | 6/5/2025 |
0.66.10-dev | 140 | 6/5/2025 |
0.66.9-dev | 129 | 6/5/2025 |
0.66.8-dev | 132 | 6/5/2025 |
0.66.7-dev | 127 | 6/4/2025 |
0.66.2-dev | 60 | 5/31/2025 |
0.65.20-generics-g24a665d336 | 58 | 5/31/2025 |
0.65.13-generics-ge74b19332f | 149 | 4/23/2025 |
0.65.10-generics-g6f262eb134 | 182 | 4/17/2025 |
0.65.1-generics | 63 | 5/31/2025 |
0.64.27 | 136 | 5/27/2025 |
0.64.26 | 198 | 5/16/2025 |
0.64.24 | 141 | 5/8/2025 |
0.64.22 | 150 | 4/23/2025 |
0.64.20 | 163 | 4/10/2025 |
0.64.18 | 158 | 4/10/2025 |
0.64.17 | 157 | 4/10/2025 |
0.64.16 | 154 | 4/9/2025 |
0.64.10 | 158 | 4/7/2025 |
0.64.9 | 127 | 4/4/2025 |
0.64.8-dev | 142 | 4/1/2025 |
0.64.7-dev-g53a80ba3be | 140 | 4/1/2025 |
0.64.5-dev-g449e36f771 | 466 | 3/25/2025 |
0.64.5-dev-g2fcf9bff64 | 138 | 4/1/2025 |
0.64.4-dev | 143 | 4/1/2025 |
0.64.3-dev | 138 | 3/31/2025 |
0.64.2-dev | 480 | 3/25/2025 |
0.64.1-dev | 463 | 3/25/2025 |
0.63.60-gee4d301e03 | 462 | 3/25/2025 |
0.63.19 | 104 | 3/21/2025 |
0.63.19-g2e909c64aa | 93 | 3/21/2025 |
0.63.17 | 118 | 3/14/2025 |
0.63.16 | 114 | 3/14/2025 |
0.63.15 | 148 | 3/13/2025 |
0.63.13 | 161 | 3/11/2025 |
0.63.12 | 156 | 3/11/2025 |
0.63.11-dev | 158 | 3/11/2025 |
0.63.9-dev | 148 | 3/11/2025 |
0.63.8-dev | 153 | 3/10/2025 |
0.63.7-dev | 162 | 3/10/2025 |
0.63.6-dev | 162 | 3/10/2025 |
0.63.3-dev | 150 | 3/10/2025 |
0.62.10 | 212 | 3/8/2025 |
0.62.9 | 212 | 3/8/2025 |
0.62.7 | 214 | 3/7/2025 |
0.62.6-dev | 195 | 3/7/2025 |
0.62.5-dev | 205 | 3/7/2025 |
0.61.14 | 206 | 3/6/2025 |
0.61.13-dev | 194 | 3/6/2025 |
0.61.12-dev | 193 | 3/6/2025 |
0.61.10-dev | 199 | 3/6/2025 |
0.61.9-dev | 200 | 3/5/2025 |
0.61.8-dev | 193 | 3/5/2025 |
0.61.5-dev | 210 | 3/4/2025 |
0.61.3-dev | 193 | 3/4/2025 |
0.61.2-dev | 139 | 3/3/2025 |
0.60.8 | 125 | 2/27/2025 |
0.60.7 | 101 | 2/27/2025 |
0.60.6-dev | 89 | 2/27/2025 |
0.60.3-dev | 84 | 2/25/2025 |
0.59.10 | 103 | 2/19/2025 |
0.59.8-dev | 96 | 2/19/2025 |
0.59.5-dev | 97 | 2/17/2025 |
0.59.4-dev | 83 | 2/15/2025 |
0.58.9 | 106 | 2/4/2025 |
0.58.8-dev | 106 | 2/4/2025 |
0.57.6 | 105 | 2/1/2025 |
0.57.4 | 107 | 2/1/2025 |
0.57.2-dev | 92 | 2/1/2025 |
0.57.1-dev | 85 | 2/1/2025 |
0.56.13 | 102 | 1/31/2025 |
0.56.12-dev | 90 | 1/31/2025 |
0.56.11-dev | 88 | 1/30/2025 |
0.56.10-dev | 91 | 1/30/2025 |
0.56.9-dev | 89 | 1/30/2025 |