This is a service for reporting astronomical events.
It's supposed that there is a dedicated RESTful server that receives requests from many HTTP / TCP clients all around the world.
Servant-based HTTP server.
Running:
$ astro server
Client app demonstrates the approaches to Dependency Injection on the business logic layer.
DI approaches:
- FinalTagless | label: FT
- FinalTagless (opt 2) | label: FT2
- Free Monad | label: FM
- GADT | label: GADT
- ReaderT | label: RT
- ServiceHandle | label: SH
You can choose the channel to send data:
- HTTP
- TCP (the logic is not implemented, just a demo of injecting this dependency)
Running:
$ astro client
Command line options:
--approach ARG DI approach, one of:
[SH,RT,FM,FT,FT2,CEFM,GADT] (default: SH)
--channel ARG channel: http or tcp (default: HttpChannel)
-h,--help Show this help text,ExitSuccess,80))