Extensibility & foreign code
Strong at consuming foreign libraries, pragmatic at bridging; the plugin, FFI and embed plane is mostly planned.
1 Strong · 2 Solid · 3 Partial · 6 Emerging
Measured against: FFI · Pyodide · Folders: base/plugin(opens in a new tab) · base/extercode(opens in a new tab) · base/extincode(opens in a new tab) · For programmers: this area's reference

Rethought from first principles
What Softanza kept from what works, and what it rethought, as the library wrote it down in its design documents and narrations.
The Softanza wayA plugin is governed foreign capability: code the host does not own, run under a contract the host enforces.
Kept from the best practice
- Each language does what it does best: Python for machine learning, R for statistics, Julia for science, Prolog for logic, all driven through one interface. source(opens in a new tab)
- Foreign code runs in its own runtime, kept apart from the host. Data is converted on the way in and out, and the console output is logged. source(opens in a new tab)
- Isolation is chosen per plugin: a cheap separate state inside the process, or a separate process that survives crashes and can be stopped by force. source(opens in a new tab)
Rethought
- A plugin receives a value and returns a value; it never reaches into the host. Stray effects on the host are impossible by construction, not forbidden by promise. (planned) source(opens in a new tab)
- No false sandbox claim: the in-process tier is said to resist buggy plugins, not malicious ones. An untrusted source is allowed only in a separate process. (planned) source(opens in a new tab)
- Built so a program can accept code it does not trust, even written by a model: every call is logged with its author, and every change can be undone. (planned) source(opens in a new tab)
- A solution found online in another language can be pasted and run with small changes, because helpers mirror that language's functions, like Python's range. source(opens in a new tab)
The most honestly-mixed group in the survey. Softanza consumes a large, carefully-vendored foreign-code stack (tree-sitter, SQLite, curl, mbedTLS, zlib, ggml, RmlUi, HarfBuzz, PCRE2, all compiled from source) and bridges pragmatically to Python/R/Julia/C/Prolog/Node by subprocess, but the extensibility the group is named for is overwhelmingly planned: no in-process FFI, no embedded interpreter, and the plugin plane ('a plugin is governed foreign capability') is a detailed plan with a recovered reference archive but zero live code.
What a crafter does with it, and what stands out
- Strong foreign-code integration: a dozen serious native libraries built from source with no runtime dependencies
- Governed foreign capability (designed): accept code you don't trust, audit what it did, undo it
- SQL-in-Haro and paste-and-tweak foreign-syntax shims
- The recovered 2024 plugin system proves per-call VM-state isolation works (~3.1 ms/call)
What is owed
- Fix the red interop suites (C22 duplicate shim definitions, 0 passing)
- Build the plugin plane (PL0-PL5)
- In-process FFI (dlopen / cffi-style)
- Configurable toolchain discovery (retire the hardcoded d: interpreter paths)
The Softanza way, run
What Softanza does differently in this area, shown by code taken from its narrations and guards, and run for this page.
Helpers mirror Python's range, with the end excluded and steps allowed, so code ported from Python keeps its meaning.
Then("range0(3) = [0..2]", @@(range0(3)), "[ 0, 1, 2 ]")
Then("range0([1, 4]) = [1..3]", @@(range0([1, 4])), "[ 1, 2, 3 ]")
Then("range0([1, 6, 2]) steps by 2", @@(range0([1, 6, 2])), "[ 1, 3, 5 ]")
Then("range0([5, 1, -1]) walks backward", @@(range0([5, 1, -1])), "[ 5, 4, 3, 2 ]")THEN range0(3) = [0..2] [PASS] THEN range0([1, 4]) = [1..3] [PASS] THEN range0([1, 6, 2]) steps by 2 [PASS] THEN range0([5, 1, -1]) walks backward [PASS]
run on 2026-10-01 21:18 inside the library at commit 0e72e2e2c; taken from base/test/extincode/51_extincode_narrated.ring(opens in a new tab)
The articles of this area (5)
- Expanding Haro’s Horizons: Unlocking New Possibilities with Python 2025
- R() in Haro: Statistical Power, One Call Away 2025
- Softanza EXCIS: Orchestrating a Polyglot Symphony 2025
- Softanza ExterLib: A Foundation for Domain-Driven Polyglot Programming 2025
- Refinement-Centered Programming with stzPolyCode 2025
The lanes, one by one
Lanes and their notes are quoted as they were read at the source, on Read from the source on 2026-09-16, from a read-only main worktree -- base/extercode and base/extincode loaded in stzBase; base/plugin = plan + recovered/ archive, not loaded; test/plugin absent.

