#3241·lego

sakuracloud: remove sacloud-sdk-go dependency

Author: yamamoto-febcCreated Aug 26, 2026Updated Aug 28, 2026
Labelsarea/dnsproviderwaiting-for/contrib-feedbackproposal

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:

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.).