Sabline 8.7.0

The embedding limit

This is a section of EMBEDDING.md, on a page of its own so that the embedding guide stays inside the size a page of the site may be. Where it says above or below, it means that guide.

Sabline embeds natively in one language and one only: Python. import sabline runs the compiler and the program in your process, and the three calls above return in microseconds to milliseconds - no process, no serialization. From any other language the boundary is a process: sabline serve (below) puts the same three calls behind a local HTTP door, and the CrewAI and LangChain tools, being Python, stay on the native library. The cost of the process boundary is real - a request to the door pays HTTP framing and a JSON round trip, on the order of a millisecond on loopback plus whatever the run itself takes, where the in-process call pays neither - which is why an agent framework written in Python should call the library, and why the door and the MCP server keep a worker pool (above) so they do not also pay an interpreter startup on every call. There is no in-process embedding for Node, Go or Rust, and there will not be one until the compiler is something other than a Python package; the process boundary is the supported way, and it is the boundary the OS enforces, which is stronger than the language's.