dbterd supports external adapter plugins via Python entry points. This allows you to develop custom algorithm or target adapters in separate Python packages (private or public) without forking the main dbterd repository.
When dbterd starts, it scans the dbterd.adapters entry point group. It imports the modules specified in your package metadata, which triggers the @register_algo or @register_target decorators. These decorators then register your adapter in the PluginRegistry automatically.
Your adapter does not need to be published to PyPI; it only needs to be installed in the same environment as dbterd using methods like local editable installs, Git URLs, or private registries.
dbterd starts
│
├── Scan built-in adapter modules
│ └── import dbterd.adapters.algos.*
│ └── import dbterd.adapters.targets.*
│
└── Scan entry points in "dbterd.adapters" group
└── Load each entry point module
└── @register_algo / @register_target decorators fire
└── Adapter registered in PluginRegistry