Resources include things served up to clients like a database or API.
- Actions provide ways to interact with a Resource.
- Processors transform data.
- Handlers provide the entry point for a request.
- Templates render data.
In a word, "neat." Assuming you have fcgi running, your web services get scaled down to a series of macros with corresponding add() calls for each one. This reduces planning/coding time considerably and allows you to easily implement a simple web/rpc server.
There do seem to be a number of features still missing:
- No general callbacks for client connect/disconnect
- No way to set HTTP response codes other than 200
- Inability to support binary data transmission
Perhaps the biggest downfall of RAPHT is its naive O(n) regex matching system. For each type of method (GET, POST, etc), it tries to regex match against every single service of that type. This means that every URL has its own regex and every RPC method has its own regex. For a server with very few services that is not a problem, but it is definitely not scalable.
Azy has none of these shortcomings, but the biggest benefit that it has over RAPHT (imo) is the ability to simultaneously generate client bindings (in C) for all of your server web services. This means that for zero additional effort, you get conversion functions for the structs that you use and functions to send those structs to your server, allowing you to save considerable time implementing a client.
I don't really have a closing to this, so instead I will post this picture: