Protokeep 0.3.14.15
dotnet tool install --global Protokeep --version 0.3.14.15
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local Protokeep --version 0.3.14.15
#tool dotnet:?package=Protokeep&version=0.3.14.15
nuke :add-package Protokeep --version 0.3.14.15
Protokeep
Open-source library purpose-built to streamline the development in data-centric architectures.
Problems addressed:
- Schema Compatibility: Seamless evolution of data schemas without breaking changes.
- Boilerplate Reduction: Minimizes redundant code for serialization and deserialization.
- Composite Key Handling: Efficiently creates keys for composite data types.
Current scope:
- Languages and Tools: Fsharp, Protobuf, Json, MongoDb, Fable
Key Features
1. Domain Type Descriptions
Simple Types: Basic data types like
int
,string
,bool
, etc. for common use cases.Generic Types: Types like
optional
,array
,list
andmap
which can hold other types.Enums: A set of named values.
Algebraic Types:
record
: product type for bundling values.union
: add type with the unique case's identifiers
Modifiers:
struct
: Ensures the type is referenced by value.key
: Denotes a field as part of the main identifier for a record.idx
: Specifies fields that can be accessed using an indexer.Version
: For managing transaction logic in the storage layers.
2. Schema Evolution Checking
Ensures your data model adapts while preserving backward and forward compatibility.
3. Domain Type Generation
Currently, Protokeep supports type generation for FSharp.
4. Data Schema Generation
Presently, the only supported data schema format is Protobuf.
5. Converters
Automatically produce converters for popular serialization libraries:
Google.Protobuf
System.Text.Json
MongoDb.Bson
Fable.SimpleJson
Getting Started
TODO
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 is compatible. 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. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
0.3.14.15 | 1,297 | 10/15/2023 |
# Release Notes
## 0.3.14 - 2023-10-15
Warining: **breaking changes**
* Restructuring of the project along with new package id
* Massive renaming of the types
* Added `IEntity` interface
* Added `IVersioned` interface
* Added support of `struct` modifier
* Added support of `enums` sizes
* Added support of `MondoDb.Bson` converters
## 0.3.6 - 2023-09-28
* FsharpJsonConverters removed delegates, changes namespace name
## 0.3.2 - 2023-09-22
* Reincarnation under 'Protokeep' name
## 0.2.6 - 2021-07-27
* bugfix
## 0.2.5 - 2021-07-27
* uppercase in for option case name
## 0.2.4 - 2021-07-05
* bugfix
## 0.2.3 - 2021-07-05
* delegates in fsharp json converters
## 0.2.2 - 2021-07-02
* bugfix
## 0.2.1 - 2021-07-01
* bugfix
## 0.2.0 - 2021-06-29
* Added fsharp-json-converter
## 0.1.2 - 2021-06-22
* Bugfix (fable converters for imported enums)
## 0.1.1 - 2021-06-22
* Bugfix (resolving namespaces in the imported modules)
## 0.1.0 - 2020-12-21
* Initial Release