-
Notifications
You must be signed in to change notification settings - Fork 0
Extending ReqPack
Leonard Ramminger edited this page May 10, 2026
·
3 revisions
Prev: Troubleshooting | Home | Next: Choosing an Extension Model
This section is for developers who want to add new ecosystems, custom package sources, or ReqPack-native packages.
Extension work in ReqPack happens at several different layers: plugin behavior, registry distribution, native rqp packaging, and core C++ internals.
ReqPack supports several extension styles. They are not equivalent. Choosing the right one early saves a lot of work.
| Model | Best for | Typical implementation |
|---|---|---|
| Lua wrapper plugin | wrap an existing package manager |
plugins/<name>/run.lua bundle |
| Lua proxy plugin | route a logical ecosystem to real backends |
plugins/java/run.lua style |
| Registry entry | distribute existing plugins centrally and attach trust metadata | registry JSON + existing plugin source |
Native rqp package |
package your own artifacts for ReqPack-native install/remove/update |
.rqp package + repository index |
| Native C++ plugin | deep integration, performance, or non-Lua runtime needs | modify ReqPack source, implement IPlugin, rebuild binary |
Registry entries are distribution and trust layer. They do not replace plugin implementation. Native C++ path is source-level work inside ReqPack, not a drop-in shared-library plugin model.
- Choosing an Extension Model
- Writing Lua Plugins
- Lua Plugin Cookbook
- Testing Lua Plugins
- Building Registry Entries
- Building
rqpPackages and Repositories - Building Native C++ Plugins
- Add a new package-manager wrapper such as
pipx,cargo, or an internal CLI. - Add a proxy system such as
java, which resolves tomavenorgradle. - Publish wrappers through a Git-backed registry.
- Publish native packages and repos through
rqp. - Add custom repository definitions that plugins consume at runtime.
- Implement deeper native runtime behavior in C++.
If you are not sure what to build, use this order:
- Start with a Lua wrapper plugin.
- If you want central distribution, add registry metadata and hashes.
- Add
resolvePackage()if you want stronger audit/SBOM behavior. - Add proxy support only if one logical ecosystem maps to multiple real ones.
- Move to a C++ plugin only if Lua becomes a hard limitation and you are willing to rebuild ReqPack.
- Choosing an Extension Model
- Writing Lua Plugins
- Lua Plugin Cookbook
- Testing Lua Plugins
- Building Registry Entries
- Building
rqpPackages and Repositories - Building Native C++ Plugins
Prev: Troubleshooting | Home | Next: Choosing an Extension Model
- User Guide
- Getting Started
- Command Reference
- Configuration
- Configuration Reference
- Security, Audit, and SBOM
- Output and Report Formats
- Remote Mode
- Remote Protocol Reference
- Using Native
rqpPackages - Troubleshooting