dapr
| Kind | kit |
|---|---|
| Capabilities | net |
| Categories | distributed cloud microservices |
| Keywords | dapr distributed microservices state pubsub http |
DAPR (Distributed Application Runtime) client for Kit
Files
| File | Description |
|---|---|
.editorconfig | Editor formatting configuration |
.gitignore | Git ignore rules for build artifacts and dependencies |
.tool-versions | asdf tool versions (Zig, Kit) |
LICENSE | MIT license file |
README.md | This file |
examples/basic.kit | Basic usage example |
kit.toml | Package manifest with metadata and dependencies |
src/dapr.kit | DAPR HTTP API client |
src/internal/types.kit | Exported record types |
tests/dapr.test.kit | Tests for DAPR data types |
tests/error-types.test.kit | Tests for DAPR error types |
Dependencies
No Kit package dependencies.
Installation
kit add gitlab.com/kit-lang/packages/kit-dapr.gitUsage
import Kit.DAPR as DAPR
main = fn =>
config = DAPR.default-config
match DAPR.health config
| Ok true -> println "DAPR sidecar is healthy"
| Ok false -> println "DAPR sidecar is not healthy"
| Err e -> println "Could not reach DAPR sidecar: ${show e}"
match DAPR.state-save config "statestore" "user:1" "Alice"
| Ok _ -> println "State saved"
| Err e -> println "Failed to save state: ${show e}"
match DAPR.state-get config "statestore" "user:1"
| Ok (Some value) -> println "Got value: ${value}"
| Ok None -> println "Key not found"
| Err e -> println "Failed to get state: ${show e}"
mainConfiguration
Use the default local sidecar configuration:
config = DAPR.default-configRead DAPR sidecar configuration from DAPR_HTTP_HOST and DAPR_HTTP_PORT:
config = DAPR.config-from-envCreate a custom sidecar configuration:
config = DAPR.config-with-host "localhost" 3500Development
Running Examples
Run the basic example with a DAPR sidecar:
dapr run --app-id test-app -- kit run examples/basic.kit --allow=netCompile the basic example to a native binary:
kit build examples/basic.kit -o basic --allow=net && ./basicRunning Tests
Run the test suite:
kit testRun the test suite with coverage:
kit test --coverageRunning kit dev
Run the standard development workflow (format, check, test):
kit devThis will:
- Format and check source files in
src/ - Check example files in
examples/ - Run tests in
tests/with coverage
Running Parity Checks
Run interpreter/compiler parity checks for examples:
kit parity --failures-onlyGenerating Documentation
Generate API documentation from doc comments:
kit doc src/dapr.kitNote: Kit sources with doc comments (##) will generate HTML documents in docs/*.html
Cleaning Build Artifacts
Remove generated files, caches, and build artifacts:
kit task cleanNote: Defined in kit.toml.
Local Installation
To install this package locally for development:
kit installThis installs the package to ~/.kit/packages/@kit/dapr/, making it available for import as Kit.DAPR in other projects.
License
This package is released under the MIT License - see LICENSE for details.
Exported Functions & Types
default-config
Default configuration for local development.
config-from-env
Create configuration from environment variables.
Config
config-with-host
Create configuration with custom host and port.
String -> NonNegativeInt -> Config
DAPRError
DAPR error type for typed error handling.
Variants
DAPRConnectionError {message}DAPRStateError {message}DAPRPubSubError {message}DAPRInvokeError {message}DAPRSecretError {message}DAPRBindingError {message}DAPRHealthError {message}StateOperation
State operation for transactions.
Variants
Upsert {key, value}Delete {key}state-save
Save a single key-value pair to a state store.
Config -> String -> String -> a -> Result Unit DAPRError
state-save-with-metadata
Save a single key-value pair to a state store with metadata.
Config -> String -> String -> a -> Map String String -> Result Unit DAPRError
state-get
Get a value from a state store.
Config -> String -> String -> Result (Option String) DAPRError
state-delete
Delete a key from a state store.
Config -> String -> String -> Result Unit DAPRError
state-bulk-get
Get multiple keys from a state store in bulk.
Config -> String -> [String] -> Result [StateItem] DAPRError
state-transaction
Execute a state transaction with multiple operations.
Config -> String -> [StateOperation] -> Result Unit DAPRError
publish
Publish an event to a topic.
Config -> String -> String -> a -> Result Unit DAPRError
publish-with-metadata
Publish an event to a topic with metadata.
Config -> String -> String -> a -> Map String String -> Result Unit DAPRError
invoke
Invoke a method on another DAPR-enabled service.
Config -> String -> String -> String -> Result String DAPRError
invoke-with-method
Invoke a method with a specific HTTP method.
Config -> String -> String -> String -> String -> Result String DAPRError
secret-get
Get a secret from a secret store.
Config -> String -> String -> Result (Map String String) DAPRError
secret-bulk-get
Get all secrets from a secret store.
Config -> String -> Result (Map String (Map String String)) DAPRError
binding-invoke
Invoke an output binding.
Config -> String -> String -> a -> Result String DAPRError
binding-invoke-with-metadata
Invoke an output binding with metadata.
Config -> String -> String -> a -> Map String String -> Result String DAPRError
health
Check if the DAPR sidecar is healthy.
Config -> Result Bool DAPRError
metadata
Get DAPR sidecar metadata.
Config -> Result DAPRMetadata DAPRError