원클릭으로
ruby-bindings
Magnus Ruby bindings for Kailash Rust — block-based lifecycle, GVL release, gem packaging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Magnus Ruby bindings for Kailash Rust — block-based lifecycle, GVL release, gem packaging.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Kailash Rust security — input validation, secrets, injection prevention. Hardcoded secrets BLOCKED.
Fork canon-incorporation runbook — rebase onto a canon kailash-rs base, re-apply the fork delta (merge-not-replace), SHA-anchored, gated + redteamed, human-gated cutover. Fork-active / canon-noop.
Kailash Rust validation — parameter, DataFlow, connection, workflow, security. Use for code review.
Project Skills (rs variant): cross-cutting patterns spanning Rust crates and PyO3/Magnus/napi-rs bindings. See enterprise-infra-bindings.md, l3-binding-parity.md, and ffi-handle-lifecycle.md.
Kailash DataFlow (Rust) — MANDATORY for DB/CRUD/bulk/migrations via sqlx + ModelDefinition. Raw SQL BLOCKED.
Kailash Nexus (Rust) — MANDATORY for API+CLI+MCP unified deployment. Direct axum/tonic BLOCKED.
| name | ruby-bindings |
| description | Magnus Ruby bindings for Kailash Rust — block-based lifecycle, GVL release, gem packaging. |
Magnus-based binding distributed as kailash gem. Uses block-based resource lifecycle with GVL release for concurrent execution.
| Item | Value |
|---|---|
| Gem name | kailash |
| Require | require 'kailash' |
| Rust crate | bindings/kailash-ruby/ |
| FFI framework | Magnus 0.8 / rb-sys >=0.9.113,<0.9.121 |
| Library type | cdylib (.bundle on macOS, .so on Linux) |
Known Issue (PR #349): rb-sys must be pinned to
>=0.9.113,<0.9.121inbindings/kailash-ruby/Cargo.toml. Versions 0.9.121+ introduced a breaking change. Both[dependencies]and[build-dependencies]entries carry this pin with thestable-apifeature.
Ruby binding uses block-based resource management (no manual close):
require 'kailash'
Kailash::Registry.open do |reg|
builder = Kailash::WorkflowBuilder.new
builder.add_node("NoOpNode", "n1", {})
wf = builder.build(reg)
Kailash::Runtime.open(reg) do |rt|
result = rt.execute(wf, {})
puts result.results
end
end
without_gvl)with_gvl) to call Ruby blocks| Module | Key Classes |
|---|---|
Kailash::Registry | Node registry with open block |
Kailash::WorkflowBuilder | DAG builder |
Kailash::Runtime | Execution engine with open block |
Kailash::Value | Value mapping (Rust <-> Ruby) |
Kailash::AuditLog | Hash-chained audit log, AuditEntry, AuditEventType |
Kailash::InMemoryEventBus | Pub/sub domain event bus, DomainEvent |
Kailash::TracingConfig | OpenTelemetry tracing, ExporterType, TelemetryMetrics |
Wraps kailash-core::audit_log. Immutable, hash-chained audit log with chain verification.
| Ruby class | Purpose |
|---|---|
Kailash::AuditEventType | Event classification (standard types + custom()) |
Kailash::AuditEntry | Single chain entry (id, event_type, actor, timestamp, hash) |
Kailash::AuditLog | Append-only log: append(), entries(), verify_chain() |
Kailash::ChainVerificationResult | Verification outcome with valid? and errors |
Source: bindings/kailash-ruby/ext/kailash/src/audit_log.rs
Wraps kailash-core::event_bus. In-memory pub/sub for domain events.
| Ruby class | Purpose |
|---|---|
Kailash::DomainEvent | Structured event (id, event_type, topic, actor, payload) |
Kailash::InMemoryEventBus | Publish/subscribe: publish(), subscribe(), drain() |
Source: bindings/kailash-ruby/ext/kailash/src/event_bus.rs
Wraps kailash-core::telemetry. OpenTelemetry configuration and atomic metrics counters.
| Ruby class | Purpose |
|---|---|
Kailash::ExporterType | Protocol selection: otlp, jaeger, stdout |
Kailash::TracingConfig | OTLP config: endpoint, service name, sample ratio, exporter |
Kailash::TelemetryMetrics | Atomic counters: increment(), get(), reset(), all() |
Source: bindings/kailash-ruby/ext/kailash/src/telemetry.rs
Cross-cutting SPEC types under Kailash::Convergence. 7 types wrapping EATP posture, auth, provider capabilities, and audit primitives.
| Ruby class | Rust source type | SPEC |
|---|---|---|
Kailash::Convergence::PostureLevel | eatp::types::PostureLevel | SPEC-07 |
Kailash::Convergence::AgentPosture | kailash_kaizen::AgentPosture | SPEC-07 |
Kailash::Convergence::EatpJwtClaims | eatp::types::EatpJwtClaims | SPEC-06 |
Kailash::Convergence::ProviderCapability | kailash_kaizen::ProviderCapability | SPEC-01 |
Kailash::Convergence::AuditOutcome | kailash_enterprise::AuditOutcome | SPEC-08 |
Kailash::Convergence::AuditActor | kailash_enterprise::AuditActor | SPEC-08 |
Kailash::Convergence::AuditResource | kailash_enterprise::AuditResource | SPEC-08 |
Source: bindings/kailash-ruby/ext/kailash/src/convergence.rs
| File | Content |
|---|---|
ruby-quickstart.md | Getting started guide |
ruby-cheatsheet.md | Common patterns + Ruby idiom cheatsheet |
ruby-common-mistakes.md | Pitfalls and fixes |
ruby-custom-nodes.md | Callback node patterns |
ruby-framework-bindings.md | Framework Ruby API |
ruby-gold-standards.md | Binding quality rules |
ruby-available-nodes.md | Node list for Ruby |
ruby-nexus-rack.md | Nexus server + Rack integration in Ruby |
ruby-mcp.md | MCP server/client patterns in Ruby |
ruby-dataflow.md | DataFlow CRUD + models in Ruby |
ruby-kaizen.md | Kaizen agents, signatures, delegates |
ruby-deployment.md | Gem build, packaging, codesign, release |
ruby-eatp-trust.md | EATP trust posture + governance in Ruby |
ruby-schema-migration.md | Schema migration patterns in Ruby |