I think I found the solution, although it is rather limited.
Interesting documentation can be found here: https://developers.google.com/v8/ (overview) and http://izs.me/v8-docs/main.html (API docs)
Seems that V8 has an ExternalStringResource
class which can be used for this purpose:
http://izs.me/v8-docs/classv8_1_1String_1_1ExternalStringResource.html
Node itself also has a Buffer
class which can also be used for similar ends:
http://nodejs.org/api/buffer.html
By using the above two classes, it is possible to implement zero-copy in a native node module for strings and byte arrays. Unfortunately it seems that (at the time I'm writing this) it isn't possible for objects.
EDIT
In case you are okay with just having the zero-copy ability for the string
or Buffer
properties of the object (but not the whole object itself), it can easily be implemented using the interceptors or accessors in the V8 API.