Skip to content

feat(sdk): add transport-free CXX bindings - #4416

Draft
PastaPastaPasta wants to merge 1 commit into
dashpay:refactor/document-query-decode-buildersfrom
PastaPastaPasta:feat/platform-cxx-bindings
Draft

feat(sdk): add transport-free CXX bindings#4416
PastaPastaPasta wants to merge 1 commit into
dashpay:refactor/document-query-decode-buildersfrom
PastaPastaPasta:feat/platform-cxx-bindings

Conversation

@PastaPastaPasta

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

Dash Core's Platform GUI currently carries a private copy of its Rust/CXX bridge and pins individual Platform crates. This makes the embedding ABI, proof-verification logic, decoders, state-transition builders, and dependency closure owned by the consumer instead of Platform.

This stacked PR gives Platform ownership of that transport-free C++ embedding surface. It is based on #4389 and assumes #4388 and #4389 merge before this PR is retargeted to v4.2-dev.

What was done?

  • Added the dash-platform-cxx workspace package with the existing platform_ffi ABI for proof verification, DPP decoding, state-transition construction, quorum context, and callback-based wallet signing.
  • Added 31 Rust tests and the proof/decoder/signing vectors previously maintained with the Dash Core integration.
  • Added a standalone manifest and lockfile so downstream build systems can vendor only this package's dependency closure.
  • Added an install contract for the static archive and public/generated CXX headers.
  • Added a real C++ link-and-run smoke test and CI checks that reject native DAPI transport dependencies.
  • Integrated the package with workspace metadata, package filters, Docker package discovery, feature checks, and nightly CI.

After this lands, PastaPastaPasta/dash#67 will consume the installed archive and headers through Dash Core's depends system and remove its private Rust/CXX implementation.

How Has This Been Tested?

  • cargo test -p dash-platform-cxx --locked (31 tests)
  • cargo clippy -p dash-platform-cxx --all-targets --locked -- -D warnings
  • cargo check --manifest-path packages/rs-platform-cxx/standalone/Cargo.toml --locked
  • standalone debug C++ link-and-run smoke test
  • standalone release build and install-layout verification
  • workspace and standalone dependency-tree checks for rs-dapi-client, Hyper, Rustls, Tower, and Reqwest
  • cargo machete
  • cargo fmt --all -- --check
  • shellcheck packages/rs-platform-cxx/install.sh packages/rs-platform-cxx/test-cxx-link.sh
  • YAML parsing and git diff --check

Breaking Changes

None. The existing platform_ffi namespace and bridge ABI from the downstream integration are preserved.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

This pull request was created by Codex.

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b3b0f9a3-7d97-499a-9081-a32b9fd9ad7b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

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