Skip to content

Initial implementation#1

Merged
pkieltyka merged 5 commits into
masterfrom
initial-implementation
Apr 9, 2026
Merged

Initial implementation#1
pkieltyka merged 5 commits into
masterfrom
initial-implementation

Conversation

@tolgahan-arikan
Copy link
Copy Markdown
Collaborator

@tolgahan-arikan tolgahan-arikan commented Apr 9, 2026

Summary
Initial implementation of gen-c: a webrpc C client generator with separate header / impl output, cJSON +
libcurl runtime support, and a tested client path against current upstream webrpc.

What’s included

  • Generates C enums, structs, method wrappers, and init / free helpers
  • Generates optional client runtime plus lower-level request preparation / response parsing helpers
  • Supports:
    • normal request/response methods
    • succinct methods
    • nested structs, lists, maps
    • any, null, timestamp
    • bigint as JSON string
    • map keys of type string and enum
  • Uses cJSON and libcurl for generated impl output
  • Includes README, checked example output, and GitHub Actions CI

Not supported

  • server generation
  • streaming methods
  • map keys other than string / enum

Testing

  • go test ./...
  • smoke generation + C syntax checks
  • codec tests
  • succinct wire-shape tests
  • interop test against upstream webrpc-test
  • checked example regeneration in CI

Validation

  • Verified locally against webrpc v0.37.1
  • Regenerated current waas client from latest waas/master
  • Updated downstream c-sdk to the new generated client and validated:
    • build passed
    • tests passed
    • live demo flow succeeded end to end

Notes

  • Generated impl output requires cJSON and libcurl
  • For precision-sensitive large integers on this target, prefer bigint over int64 / uint64 due to cJSON
    numeric limitations

@pkieltyka pkieltyka merged commit 02c03a5 into master Apr 9, 2026
2 checks passed
@tolgahan-arikan tolgahan-arikan deleted the initial-implementation branch April 17, 2026 11:32
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