revitalize netbox api
Long story short, net.box connector is a legacy. It was ported from lua implementation (with all it's drawbacks). Some of features are already considered outdated, and some even harmful (reconnect_after). Let's revitalize it.
-
Split the code into the following parts:
-
sans-io (protocol handling) - layer 1 -
io (tarantool-based client, optional) - layer 2 -
reconnecting client (tarantool-based) - layer 3 -
pool (collection of auto-reconnecting clients)- layer 4. It will be implemented as part of picodata#227 (closed) in picodata.
-
-
Make api async using results of #22 (closed) -
Remove reconnect_afteroption support and all related FSM stuff. -
Don't implement remote schema support yet -
Eliminate the use of blocking std::net::to_socket_addr(#81 (closed)). -
Implement tarantool's(deprecated in Tarantool 3.0)box.session.pushfeature support -
Implement tarantool's conn:watchfeature support. (#143 (moved)) -
Compare performance with original rust implementation and with lua. -
Implement external schema provider based on clusterwide ddl
Bonus:
- Adopt new type of error responses. See also corresponding MessagePack ERROR extension.
See also