sakuracloud: remove sacloud-sdk-go dependency
Welcome
- Yes, I'm using a binary release or the library within the two latest releases.
- Yes, I've searched for similar issues on GitHub and didn't find any.
Detailed Description
I would like to remove the sacloud-sdk-go dependency from the SAKURA Cloud DNS provider and replace it with a minimal internal HTTP client that implements only the API operations required by lego.
The SAKURA Cloud SDK dependency has previously been identified as increasing lego's binary size:
- https://github.com/sacloud/iaas-api-go/issues/376
- https://github.com/sacloud/sacloud-sdk-go/issues/235
The SDK is a general-purpose client and includes functionality and dependencies that this DNS provider does not need. The provider only uses a small subset of the API:
- Finding a DNS zone
- Reading DNS records
- Updating DNS records
Using a small provider-specific client would reduce unnecessary dependencies, binary size, and dependency maintenance overhead.
I measured the binary size impact with go-size-analyzer:
OLD SIZE: 95 MB
NEW SIZE: 89 MB
DIFF: -6.3 MB (-6.56%)The proposed implementation would use a minimal internal client based on net/http, while preserving existing provider behavior and configuration compatibility.
It would also expose SAKURACLOUD_API_ENDPOINT to retain the endpoint override capability previously provided by the SDK, including support for mock API servers used in testing.
The change is intended to be transparent to existing Sakura Cloud provider users. No configuration changes should be required.
If this approach is acceptable, I can open a pull request with the implementation.
Effective version of lego
v5.4.0
How do you use lego?
go install
In which context are you using lego?
Personal use
Supporting the Maintainers
- Yes, I find this project useful, and I appreciate the work done by the maintainers.
- Yes, I have starred this repository to help others find it.
- Yes, I have sponsored this project to keep the project stable and maintained.
Confirmation
- Yes, I've included all the information above (version, usage, etc.).
Source: go-acme/lego