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
-
Simple Types: Basic data types like
int
,string
,bool
, etc. for common use cases. -
Generic Types: Types like
optional
,array
,list
,set
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.
Ensures your data model adapts while preserving backward and forward compatibility.
Currently, Protokeep supports type generation for FSharp.
Presently, the only supported data schema format is Protobuf.
Automatically produce converters for popular serialization libraries:
Google.Protobuf
System.Text.Json
MongoDb.Bson
Fable.SimpleJson
TODO