Build distributed applications using the Dapr JavaScript SDK. The Dapr JavaScript SDK provides client libraries to interact with Dapr building blocks and APIs.

## Resources

- [Dapr JavaScript SDK GitHub](https://github.com/dapr/js-sdk)
- [Dapr JavaScript SDK npm](https://www.npmjs.com/package/@dapr/dapr)
- [Dapr JavaScript SDK Documentation](https://docs.dapr.io/developing-applications/sdks/js/)

**Prerequisites:**

- Node.js LTS or Current ([Download](https://nodejs.org/))
- [Dapr JavaScript Client/Server SDK](https://www.npmjs.com/package/@dapr/dapr)

## Installation

Install the Dapr JavaScript SDK via npm:

```bash
npm install --save @dapr/dapr
```

## Dapr Client APIs

Use the Dapr Client to interact with Dapr building blocks and APIs with JavaScript-specific examples and code samples.

- [State Management](https://docs.dapr.io/developing-applications/sdks/js/js-client/#state-management-api) — Store and retrieve application state using key-value pairs with JavaScript code examples
- [Service Invocation](https://docs.dapr.io/developing-applications/sdks/js/js-client/#invocation-api) — Invoke methods on other services securely and reliably with JavaScript SDK
- [Publish](https://docs.dapr.io/developing-applications/sdks/js/js-client/#pubsub-api) — Publish events to topics for event-driven communication in JavaScript
- [Bindings](https://docs.dapr.io/developing-applications/sdks/js/js-client/#bindings-api) — Interact with external systems through input and output bindings using JavaScript
- [Secrets Management](https://docs.dapr.io/developing-applications/sdks/js/js-client/#secret-api) — Securely retrieve secrets from configured secret stores with JavaScript examples
- [Conversation](https://docs.dapr.io/developing-applications/building-blocks/conversation/howto-conversation-layer/) — Interact with Large Language Models (LLMs) using the Dapr Conversation API with JavaScript

## Dapr Server

Build services that can be invoked by other services and subscribe to topics using JavaScript.

- [Configuring the SDK Communication Protocol](https://docs.dapr.io/developing-applications/sdks/js/js-server/#using-http-built-in-express-webserver) — Create services that can be invoked by other Dapr applications using HTTP or gRPC
- [Service Invocation Handler](https://docs.dapr.io/developing-applications/sdks/js/js-server/#invocation-api) — Create services that can be invoked by other Dapr applications
- [Pub/Sub Subscriptions](https://docs.dapr.io/developing-applications/sdks/js/js-server/#pubsub-api) — Subscribe to topics and handle messages in JavaScript applications
- [Binding Invocation Handler](https://docs.dapr.io/developing-applications/sdks/js/js-server/#bindings-api) — Handle input bindings from external systems

## Advanced Features

- [Actors](https://docs.dapr.io/developing-applications/sdks/js/js-actors/) — Build virtual actors with state, timers, and reminders using JavaScript SDK
- [Workflow](https://docs.diagrid.io/develop/workflows/javascript-sdk) — Create durable, long-running workflows with JavaScript code examples
- [Cryptography](https://docs.dapr.io/developing-applications//sdks/js/js-client/#cryptography-api) — Encrypt and decrypt data using configured cryptography components in JavaScript
- [Distributed Lock](https://docs.dapr.io/developing-applications/sdks/js/js-client/#distributed-lock-api) — Acquire and release distributed locks for synchronization with JavaScript
- [Authentication](https://docs.dapr.io/developing-applications/sdks/js/js-client/#authentication) — Configure API token authentication for Dapr client in JavaScript

## Getting Started

- [JavaScript Examples](https://github.com/dapr/js-sdk/tree/main/examples) — Samples that highlight the Javascript SDK Capabilities
- [JavaScript Client Documentation](https://docs.dapr.io/developing-applications/sdks/js/js-client/) — Complete JavaScript client SDK guide with code examples

### Catalyst Quickstarts

- [State Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/state) — Get started with state management in Catalyst
- [Pub/Sub Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/pubsub) — Get started with publish and subscribe in Catalyst
- [Service Invocation Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/invocation) — Get started with service invocation in Catalyst
