Installable Harding packages that can bundle native Nim code and Harding source together
Harding can load installable external libraries through harding lib. These packages can bundle Harding source in .hrd files, native Nim code and primitives, and metadata in .harding-lib.json.
This keeps the Harding-facing API and the native implementation in one installable unit.
In practice, a Harding library is just a git repository with a small metadata file. Installing a library clones that repository into the local external/ directory. The next Harding build regenerates the external-library wiring so the library is compiled into the VM/runtime binary.
harding lib list
harding lib install sqlite
harding lib install bitbarrel
harding lib install nimcp
# then rebuild Harding so the library is compiled into the binary
nimble harding
Persistent storage integration with hash and sorted table abstractions.
harding lib install bitbarrel
SQLite database connectivity for embedded local persistence.
harding lib install sqlite
MySQL database connectivity for external database-backed applications.
harding lib install mysql
HTTP client support for talking to external APIs and services.
harding lib install curly
Google-specific OAuth integration on top of OAuth2 flows.
harding lib install googleoauth
external/my-lib/
|- .harding-lib.json
|- lib/
| `- my-lib/
| `- Bootstrap.hrd
`- src/
`- native_impl.nim
Installed libraries simply live under external/, for example external/sqlite/, external/mysql/, or external/bitbarrel/.
Clone the library git repository into external/.
Regenerate the external-library wiring and compile the library into Harding.
Load and use the library through its normal Harding bootstrap and API.
The external library model lets Harding stay small while still supporting databases, HTTP clients, authentication, MCP tooling, and custom native extensions. It also keeps the Harding and Nim sides versioned together as one installable unit.