Skip to content

Explore a Rust interface for CCF applications - #8200

Draft
Amaury Chamayou (achamayou) wants to merge 9 commits into
mainfrom
achamayou-rust-interface-exploration
Draft

Explore a Rust interface for CCF applications#8200
Amaury Chamayou (achamayou) wants to merge 9 commits into
mainfrom
achamayou-rust-interface-exploration

Conversation

@achamayou

Copy link
Copy Markdown
Member

Summary

This draft explores what it would take to support native CCF applications written in Rust while keeping the integration boundary small and explicit.

It introduces:

  • a C ABI bridge between the CCF host and Rust application code;
  • an initial ccf-app Rust crate for endpoint registration, request and response handling, authentication selection, and raw-byte KV access;
  • CMake support for building and packaging Rust applications alongside native CCF applications;
  • a basic Rust records application, end-to-end test coverage, and user documentation.

Goal

The goal is to evaluate the viability and ergonomics of Rust as another native CCF application language without exposing C++ implementation details across the boundary. The proposed API deliberately starts small so that ownership, lifetime, panic containment, transaction, concurrency, and packaging concerns can be reviewed before expanding the surface area.

Exploration status

This is exploratory work, not a commitment to a stable or production-supported Rust SDK. The current interface intentionally omits advanced endpoint configuration, custom authentication policies, historical queries, indexing, and commit callbacks. Feedback is especially welcome on the ABI design, safety guarantees, SDK ergonomics, and long-term maintenance implications.

This replays the work from achamayou/CCF#107 onto the current microsoft/CCF main branch so it can be discussed and evaluated in the upstream repository.

Validation

The replayed change set passes git diff --check. Rust compilation and the end-to-end test were not run locally because Cargo is unavailable in this Windows checkout; the draft is intended to gather design feedback and exercise upstream CI.

Copilot AI and others added 9 commits August 24, 2026 14:45
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: achamayou <4016369+achamayou@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.

2 participants