{"id":51024207,"url":"https://github.com/nativebpm/sdk","last_synced_at":"2026-06-21T18:02:14.070Z","repository":{"id":364050212,"uuid":"1266201252","full_name":"nativebpm/sdk","owner":"nativebpm","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-18T11:56:46.000Z","size":16456,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T13:25:59.883Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nativebpm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T12:06:24.000Z","updated_at":"2026-06-18T11:56:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nativebpm/sdk","commit_stats":null,"previous_names":["nativebpm/sdk"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/nativebpm/sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativebpm%2Fsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativebpm%2Fsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativebpm%2Fsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativebpm%2Fsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nativebpm","download_url":"https://codeload.github.com/nativebpm/sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativebpm%2Fsdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34620358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-21T18:02:13.239Z","updated_at":"2026-06-21T18:02:14.065Z","avatar_url":"https://github.com/nativebpm.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NativeBPM Polyglot Client SDKs\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://gitlab.com/nativebpm/sdk\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/NativeBPM-Platform-blueviolet?style=for-the-badge\" alt=\"NativeBPM Platform\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nWelcome to the official **NativeBPM Client SDKs** monorepo. NativeBPM is a cloud-native, high-performance BPMN 2.0 execution engine designed for modern microservice architectures. \n\nThis repository houses the client libraries and Fluent Workflow builders for all major programming languages, allowing you to define, deploy, and interact with process definitions and human-in-the-loop tasks using your favorite language.\n\n---\n\n## 📖 API Documentation \u0026 Resources\n\n* **Interactive Swagger UI**: Accessible at `http://localhost:8080/ui/docs` (choose topic *6. REST API Reference* inside your local NativeBPM Console).\n* **Raw OpenAPI Specification**: Exposed dynamically by the engine at `http://localhost:8080/api/openapi.json`.\n* **Central Repo Resources**:\n  - [openapi.yaml](file:///Users/user/github.com/nativebpm/sdk/openapi.yaml): The platform OpenAPI 3.0 specification file.\n\n---\n\n## 🚀 Supported Languages\n\nClick on the language badges below to navigate to their respective subdirectories and check out the documentation and runnable examples:\n\n| Language | Badge | Quick Link |\n| :--- | :--- | :--- |\n| **Go** | ![Go](https://img.shields.io/badge/Go-00ADD8?style=flat-square\u0026logo=go\u0026logoColor=white) | [Go Client \u0026 Builder](./go) |\n| **Python** | ![Python](https://img.shields.io/badge/Python-3776AB?style=flat-square\u0026logo=python\u0026logoColor=white) | [Python Client \u0026 Builder](./python) |\n| **TypeScript** | ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat-square\u0026logo=typescript\u0026logoColor=white) | [TypeScript Client \u0026 Builder](./typescript) |\n| **Java** | ![Java](https://img.shields.io/badge/Java-ED8B00?style=flat-square\u0026logo=openjdk\u0026logoColor=white) | [Java Client \u0026 Builder](./java) |\n| **.NET (C#)** | ![.NET](https://img.shields.io/badge/.NET-512BD4?style=flat-square\u0026logo=dotnet\u0026logoColor=white) | [.NET Client \u0026 Builder](./dotnet) |\n| **PHP** | ![PHP](https://img.shields.io/badge/PHP-777BB4?style=flat-square\u0026logo=php\u0026logoColor=white) | [PHP Client \u0026 Builder](./php) |\n| **Rust** | ![Rust](https://img.shields.io/badge/Rust-000000?style=flat-square\u0026logo=rust\u0026logoColor=white) | [Rust Client \u0026 Builder](./rust) |\n| **Kotlin** | ![Kotlin](https://img.shields.io/badge/Kotlin-7F52FF?style=flat-square\u0026logo=kotlin\u0026logoColor=white) | [Kotlin Client](./kotlin) |\n| **Swift** | ![Swift](https://img.shields.io/badge/Swift-F05138?style=flat-square\u0026logo=swift\u0026logoColor=white) | [Swift Client](./swift) |\n| **Dart / Flutter** | ![Dart](https://img.shields.io/badge/Dart-0175C2?style=flat-square\u0026logo=dart\u0026logoColor=white) | [Dart \u0026 Flutter Client \u0026 Builder](./dart) |\n\n---\n\n## 🛠️ Server-side Workflow-as-Code Compilation\n\nNativeBPM features a state-of-the-art **Workflow-as-Code** builder. Instead of writing verbose BPMN 2.0 XML by hand or using external visual tools, developers can write type-safe, fluent code in their host language.\n\nTo ensure client-side SDKs remain extremely lightweight, reliable, and free of heavy runtime dependencies (like WASM runtimes or local binary files), the compilation logic has been moved entirely to the server side. \n\n### How it Works\n\n```mermaid\nflowchart TD\n    subgraph \"Host Application (Go, Python, JS, Rust, Swift, etc.)\"\n        API[Fluent Workflow API Builder] --\u003e|Builds AST| AST[Workflow AST JSON]\n        AST --\u003e|Direct HTTP POST| REST[REST API Client]\n    end\n\n    subgraph \"NativeBPM Engine Server\"\n        POST_DEPLOY[POST /api/deploy] --\u003e|Receives JSON AST| COMPILER[Embedded Go-in-WASM Compiler]\n        COMPILER --\u003e|Compiles \u0026 Validates| BPMN[BPMN 2.0 XML]\n        BPMN --\u003e|Registers \u0026 Runs| ENGINE[Execution Engine]\n    end\n\n    REST --\u003e|Sends JSON AST| POST_DEPLOY\n\n    style COMPILER fill:#4F46E5,stroke:#fff,stroke-width:2px,color:#fff\n    style BPMN fill:#10B981,stroke:#fff,stroke-width:2px,color:#fff\n    style ENGINE fill:#06B6D4,stroke:#fff,stroke-width:2px,color:#fff\n```\n\nBy offloading the compilation to the engine backend, NativeBPM client SDKs require:\n* **Zero Client Dependencies**: No WebAssembly interpreters (like Wazero or Wasmtime) or local `.wasm` files are bundled.\n* **Flawless Stability**: Platform updates and schema validations are maintained server-side, meaning client SDKs do not need updates for compiler upgrades.\n* **App Store Policy Compliance**: Perfect for mobile platforms (iOS/macOS via Swift, Android via Kotlin) which strictly restrict JIT execution and arbitrary binary execution.\n\n---\n\n## 🌟 Why NativeBPM Loves Your Language\n\nEvery language has its unique ecosystem, strengths, and philosophy. NativeBPM embraces this diversity and optimizes the developer experience for each stack:\n\n### 🐹 Go (Golang)\n* **Native Cohesion**: Since the core NativeBPM execution engine is written in Go, the Go client features direct and seamless integration.\n* **Concurrency-First**: Take full advantage of Go's lightweight goroutines and channels to write high-concurrency topic workers.\n* **Minimal Footprint**: Compiles into a single statically linked binary with absolute zero runtime dependencies.\n\n### 🐍 Python\n* **Outstanding Ergonomics**: Clear, readable syntax makes writing workflows as code feel natural and pleasant.\n* **Rapid Prototyping**: Ideal for fast iterations, scripts, and startups.\n* **AI \u0026 Agentic Ecosystem**: Python is the lingua franca of AI. NativeBPM's first-class `AITask` integrates beautifully with LangChain, LlamaIndex, and GenAI libraries.\n\n### ⚡ TypeScript / JavaScript\n* **Universal Reach**: Integrates natively with Node.js microservices, Edge runtimes, and frontend dashboards.\n* **Asynchronous Mastery**: Fits perfectly within the JS async/await event-loop model for event-driven workflows.\n* **Type Safety**: Full TypeScript typings for all REST APIs and workflow builders ensure autocomplete and compile-time correctness.\n\n### ☕ Java\n* **Enterprise Powerhouse**: Perfect for robust, long-running enterprise applications and high-throughput systems.\n* **Strict Type Safety**: Protects complex orchestrations with Java's mature object-oriented compiler.\n* **Familiar Migration**: Provides a modern, cloud-native migration path for legacy BPM (e.g. Camunda, Activiti) architectures.\n\n### 💎 .NET (C#)\n* **High Performance**: Native asynchronous tasks (`async/await`) and Linq integrations make backend execution extremely performant.\n* **Premium Tooling**: Integrates natively with Visual Studio and the modern .NET Core / ASP.NET ecosystem.\n* **Robust Enterprise Layout**: Type-safe client configurations and dependency injection patterns match enterprise architecture standards.\n\n### 🐘 PHP\n* **Web Native**: Perfect for PHP-centric applications, frameworks (like Laravel), and rapid-delivery web backends.\n* **Simple Execution Model**: The straightforward, request-lifecycle PHP model makes queuing background tasks and invoking workflows highly intuitive.\n* **Easy Integration**: Perfect for transactional backends that need process orchestration without complex microservice overhead.\n\n### 🦀 Rust\n* **Maximum Performance**: Zero runtime cost and zero-garbage-collector execution for absolute memory safety and speed.\n* **Direct WASM Synergy**: Rust compiles to and interacts with WASM runtimes (like Wasmtime) with the highest possible efficiency.\n* **Bulletproof Safety**: The compiler enforces strict ownership rules, preventing runtime data races in distributed workers.\n\n### 🚀 Kotlin (Android / JVM)\n* **Mobile \u0026 Backend Ready**: Native Kotlin REST client, perfect for Android apps, backend microservices, or Kotlin Multiplatform projects.\n* **Modern Concurrency**: Built with OkHttp and coroutines compatibility for lightweight asynchronous requests.\n* **Clean Syntax**: Elegant Kotlin properties and builders that map directly to the platform API.\n\n### 🍎 Swift (iOS / macOS)\n* **Native Apple Integration**: Native Swift implementation using URLSession and modern async/await for smooth integration into iOS, macOS, or watchOS apps.\n* **Strict Type Safety**: Fully compatible with Swift Codable schemas and AnyCodable variables, avoiding JSON deserialization issues.\n* **Lightweight Bundle**: REST-only client, avoiding WebAssembly and runtime overhead to keep your mobile application binary size tiny.\n\n### 🎯 Dart / Flutter\n* **Mobile \u0026 Cross-Platform Ready**: Statically typed Dart client, optimized for Flutter apps running on iOS, Android, Web, or Desktop.\n* **Declarative Workflow Builder**: Full support for the Fluent API, including conditional branching using `.when().then().Else()` and automatic back-edge loops tracking.\n* **AOT Compilation Friendly**: Zero dependency footprint, avoiding WASM runtimes to comply with strict iOS AOT and app store execution policies.\n\n---\n\n## 🤖 AI Service Task Integration (`aiServiceTask`)\n\nTo facilitate seamless AI and LLM orchestration without breaking BPMN 2.0 standards:\n* Every client SDK provides a fluent `.AITask(...)` (or `.ai()`) helper.\n* Under the hood, this compiles into a standard BPMN `\u003cserviceTask\u003e` element with the type `\"aiServiceTask\"` and topic `\"ai_assistant\"`.\n* System instructions, prompts, and target schemas are automatically serialized into `\u003cextensionElements\u003e` (matching standard Camunda input/output structures).\n* This keeps your process schemas fully compatible with standard BPMN 2.0 visual modelers while giving your developers a clean, type-safe API wrapper.\n\n---\n\n## 📝 License\n\nThis project is licensed under the terms of the **Unlicense** (see individual directories for details).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativebpm%2Fsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnativebpm%2Fsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativebpm%2Fsdk/lists"}