We have prepared some examples, which might help you to implement your first Sandboxed API library.
A demo library implementing a few C functions and a single C++ function. It uses ProtoBuffs to exchange data between host code and the SAPI Library.
bazel-out/genfiles/sandboxed_api/examples/sum/lib/sum-sapi.sapi.h
after a Bazel build.This is a demo implementation (functional, but currently not used in production) for the zlib library exporting some of its functions, and making them available to the host code.
The demonstrated functionality of the host code is decoding of zlib streams from stdin to stdout.
This SAPI library doesn't use the sandbox.h
file, as it uses the default Sandbox2 policy, and an embedded SAPI library, so there is no need to provide sapi::Sandbox::GetLibPath()
nor sapi::Sandbox::GetPolicy()
methods.
The zlib SAPI can be found in //sapi_sandbox/examples/zlib, along with its host code.