Want to create your own GD-92 solution in .NET Core? This GitHub project implments the core of the GD-92 v2.2 specification or it will if I ever find the time to complete it!
WARNING Right now this is very incomplete!
The Domain model for you to use in your projects. This contains the entities, value objects, etc.. that GD-92 defines.
Defines every GD-92 field
Defines every GD-92 message
A pile of Docker images where each image is a router, MTA, or UA. All images share a network (via docker Compose or K8?)
Clean architecture; every solution has the following projects (and thier corresponding unit tests in a [project].tests.unit project)
- The API (all UAs, MTAs and the router expose a REST API)
- `[project].api
- a ASP.NET Core web API project, this hosts the REST API
- The Application project
- `[project].application
- The Infrastucture project
- `[project].infrastucture
- The Domain project
- `[project].domain
- this uses the domain NuGet project.
graph LR;
API["REST API (ASP.NET Core API)"];
App["Application"];
Dom["Domain"];
Inf["Infrastucture"];
API --> App --> Dom;
App --> Inf;
These projects run in a docker image (See the Dockerfile). Each docker image exposes a REST API, the various containers use this to implement IPC between the apps. If using docker-compose the need to share a network for this to work! TBC.
Implements the GD-92 router. This is port 25 in GD-92 definition. Exposed as TCP port 10025 ?
Implements a LAN MTA to allow the host machine (of the docker images) to communicate with another GD-92 node on annother machine in your network.
Implements a node mananger UA, requires some sort of persistns storage for node config, files? or Mongo DB? TBC
TBC
A UI that can display received GD-92 messages, and can create and send GD-92 messages. TBC