Skip to content

Add docs/sdks.md — public overview of the SDK suite#3

Open
pimfeltkamp wants to merge 5 commits intomainfrom
add-sdks-doc
Open

Add docs/sdks.md — public overview of the SDK suite#3
pimfeltkamp wants to merge 5 commits intomainfrom
add-sdks-doc

Conversation

@pimfeltkamp
Copy link
Copy Markdown

Summary

Creates docs/sdks.md as the single public landing page for the six language SDKs and the CLI.

Why

New — no existing doc covers the SDK suite as a whole. Third-party devs either browse the org page or guess at registry names. This doc:

  • Lists every package (language → registry → repo → current version)
  • Shows the install command for each
  • Shows a one-line auth snippet per language
  • Documents the shared error taxonomy (the stable `code` enum)
  • Documents the rate-limit / 429 retry model
  • Documents tag-prefix conventions (why PHP + Go use bare `v*`)
  • Cross-links to VERSIONING.md and the OpenAPI spec

Test plan

  • Render the markdown on GitHub, confirm links resolve
  • Confirm install commands are accurate against the live registries

Follow-ups (not this PR)

  • Version numbers in the table will rot; consider a small workflow that bumps them on release
  • Could add an `sdk-status` dashboard later once we have >6 langs

Single-page reference documenting the six official language SDKs and
the CLI: install commands, auth snippet per language, shared error
taxonomy, rate-limit behaviour, tag-prefix conventions, and the
minimum runtimes each SDK targets. Cross-links to VERSIONING.md and
the OpenAPI spec.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
pimfeltkamp and others added 3 commits April 25, 2026 02:45
Cryptohopper now ships seven language SDKs. The Dart SDK matches the
Ruby/Rust/PHP shape with full coverage of all 18 public API domains
from day one and is published from cryptohopper-dart-sdk.

Also bumps the CLI's listed version from 0.5.0-alpha.1 to 0.5.1-alpha.1
to reflect the security fix that landed in the previous loop iteration.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Cryptohopper now ships eight language SDKs. The Swift SDK is consumed
via Swift Package Manager directly from the git tag (no central
registry), same publishing pattern as Go.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The CLI shipped 0.6.0-alpha.1 in the previous iteration with new
strategy + exchange-catalog commands. Keep the table in sync.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pimfeltkamp
Copy link
Copy Markdown
Author

Pre-existing SDKs in the org I missed

While auditing the org for iter-41, I discovered three public repos that overlap with what docs/sdks.md currently documents:

Repo Stars Description Distribution
cryptohopper-ios-sdk 4 Swift, iOS-only, since 2020 CocoaPods (pod 'Cryptohopper-iOS-SDK')
cryptohopper-android-sdk 1 Kotlin, since 2020 JitPack
code-samples 13 curl / Node / PHP / Python integration examples git clone

Overlap with this PR's content

  • The Swift row in docs/sdks.md covers my new cryptohopper-swift-sdk (SwiftPM, cross-platform incl. macOS/Linux/tvOS/watchOS). The pre-existing cryptohopper-ios-sdk is iOS-only and CocoaPods-distributed. Different audiences, different distribution channels — they can coexist, but the doc should make the choice clear.
  • There's no Kotlin/Android row in docs/sdks.md today. The pre-existing cryptohopper-android-sdk could be added.
  • code-samples is cross-language curl/Node/PHP/Python samples — useful to link as a "see also" near the SDK suite, distinct from the per-SDK examples/ folders.

Suggested follow-ups (separate PRs, your call which to land)

  1. Document the Swift split — add a note under the Swift row explaining when to use cryptohopper-ios-sdk (iOS-only, CocoaPods, mature) vs. cryptohopper-swift-sdk (cross-platform, SwiftPM, alpha).
  2. Add an Android row referencing the existing cryptohopper-android-sdk (Kotlin, JitPack).
  3. Link code-samples in a "Related resources" section of docs/sdks.md.

I deliberately didn't make these changes here to avoid forcing a re-review of an already-reviewed PR. Happy to follow up with separate PRs once you confirm the positioning.

Action also relevant to this PR's other audiences

  • CLI section in main README (PR #5) — the Swift install row probably needs the same caveat.
  • My new Swift SDK README — should reference the existing iOS SDK explicitly so users aren't confused.

@pimfeltkamp
Copy link
Copy Markdown
Author

Merge-order note: version column will be stale after the auth-fix releases ship

The "Version" column lists 0.4.0-alpha.1 / 0.1.0-alpha.1 / 0.6.0-alpha.1 everywhere. The auth-fix patch releases (tracked in #9) bump everything to …alpha.2:

Package This PR says After auth-fix ships
@cryptohopper/sdk 0.4.0-alpha.1 0.4.0-alpha.2
cryptohopper (PyPI) 0.4.0a1 0.4.0a2
cryptohopper-go-sdk v0.4.0-alpha.1 v0.4.0-alpha.2
cryptohopper (gem) 0.1.0.pre.alpha.1 0.1.0.pre.alpha.2
cryptohopper (crate) 0.1.0-alpha.1 0.1.0-alpha.2
cryptohopper/sdk (Packagist) 0.1.0-alpha.1 0.1.0-alpha.2
cryptohopper (pub.dev) 0.1.0-alpha.1 0.1.0-alpha.2
Cryptohopper (SwiftPM) 0.1.0-alpha.1 0.1.0-alpha.2
@cryptohopper/cli 0.6.0-alpha.1 0.6.0-alpha.2

Plus the composer require cryptohopper/sdk:^0.1.0-alpha.1 line on row 40.

Two options

  1. Land this PR as-is, then a small follow-up PR after every auth-fix release lands updates the column. Cleanest separation; requires bookkeeping.
  2. I push a follow-up commit here bumping every version to alpha.2 before this PR merges. Risk: if this lands before an auth-fix release publishes to the registry, users will copy the install commands and get 404s.

I'd lean (1) — the bookkeeping is small and the install commands stay safe. Happy to do (2) if you'd rather batch it. Or (3): drop the version column entirely and rely on the registry-link badges next to each package name to show the current version automatically. (3) is the most maintenance-free option — let me know if you want me to push a commit for it.

I deliberately didn't unilaterally amend this PR — the choice between (1)/(2)/(3) depends on whether you'd rather optimise for review-time or for long-term doc maintenance.

Cross-reference

  • Tracking issue: #9 (auth fix, all 9 PRs listed there)
  • Sister stale-state issue: #6 (CHANGELOG Unreleased headings — same kind of bookkeeping debt across the SDK suite)

The new cryptohopper-kotlin-sdk lands at parity with the other
official SDKs (full coverage of all 18 public API domains, same
error taxonomy, OkHttp transport, kotlinx.coroutines). Adds:

- Kotlin row to the at-a-glance table (com.cryptohopper:cryptohopper)
- 'Cryptohopper ships official clients for nine languages' (was eight)
- 'sent in the access-token HTTP header' added to the intro paragraph
  so readers don't have to hunt for the header name
- Install snippets for Dart, Swift, and Kotlin in the Installing block

Cross-reference: see https://github.com/cryptohopper/cryptohopper-kotlin-sdk
for the new SDK.
@pimfeltkamp
Copy link
Copy Markdown
Author

Pushed a follow-up commit adding the new cryptohopper-kotlin-sdk — created today and shipped at parity with the other SDKs (all 18 domains, OkHttp transport, kotlinx.coroutines, sends access-token from day one). Updated the at-a-glance table, intro count (eight → nine), the auth-header reference (added 'sent in the access-token HTTP header' inline), and added Dart/Swift/Kotlin install snippets that were missing.

Same merge-order note from earlier still applies: the version column is alpha.1 across the board; will need a follow-up bump to alpha.2 after the auth-fix releases ship.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant