Implement an embedded library for Box

Registered by Kostja Osipov

Right now, the only entry point into 'box' is 'rw_callback'. 'rw_callback' accepts a binary packet, and returns one or more tuples or throws an exception.

This has the following issues:
- when implementing Lua bindings, we need to pack data into binary protocol format before we can pass it to the box. This means unnecessary packing, and unnecessary complexity of the api
- we can not benchmark Box performance separately from entire tarantool performance. For embedded use, we can not stick out an embedded library - the only way we can handle requests is as a standalone server
- for cluster, we need a programming environment in which it is easy to exchange requests between boxes. This is something that should be easy to document and use. Instead of a single callback and a binary packet format, we need to stick out a higher level api and transparently marshal calls of this api across cluster nodes. E.g. it should be possible and easy to write a stored procedure which manipulates with data in several boxes.

It would also be beneficial to ship tarantool as in-process database for Lua and Erlang. This is where this library could be used as well.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.