Protokeep 0.3.14.15

dotnet tool install --global Protokeep --version 0.3.14.15
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Protokeep --version 0.3.14.15
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Protokeep&version=0.3.14.15
nuke :add-package Protokeep --version 0.3.14.15

Protokeep

Build status

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 and map 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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