Define one exception type with a polymorphic variant for all errors
- Add an apply with named arguments function to genspec.ml (reverse of init)
- Hide all defs and construct {client,server}_{request,reply} function to guarantee correct usage.
- Create a generic framework for communicating (used by both the connection and channel modules)
- Add type constraints to Protocol.Spec.def and Protocol.Content.def.
- Remove unused fields from def.
- Wrap all public modules in amqp_client_eio module.
- Test error handling, by inserting random errors in the code.
- When receving a body, create a buffer to hold all data and read into that.
- Use flow to control queue lengths for channels.
- Handle connection block/unblock
- Reduce fields in channel structure
- Connection open / close
- Channel open / close
- Queue create / delete
- Exchange operations
- RPC endpoint (client / server)
- Add documentation to the API
- Create a landing API documentation page