# Runnable

> **Class** in `@langchain/core`

📖 [View in docs](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable)

A Runnable is a generic unit of work that can be invoked, batched, streamed, and/or
transformed.

## Signature

```javascript
class Runnable
```

## Extends

- `Serializable`

## Implements

- `RunnableInterface<RunInput, RunOutput, CallOptions>`

## Constructors

- [`constructor()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/constructor)

## Properties

- `lc_kwargs`
- `lc_namespace`
- `lc_runnable`
- `lc_serializable`
- `name`
- `lc_aliases`
- `lc_attributes`
- `lc_id`
- `lc_secrets`
- `lc_serializable_keys`

## Methods

- [`_batchWithConfig()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_batchWithConfig)
- [`_callWithConfig()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_callWithConfig)
- [`_getOptionsList()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_getOptionsList)
- [`_separateRunnableConfigFromCallOptions()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_separateRunnableConfigFromCallOptions)
- [`_streamIterator()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_streamIterator)
- [`_streamLog()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_streamLog)
- [`_transformStreamWithConfig()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/_transformStreamWithConfig)
- [`assign()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/assign)
- [`asTool()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/asTool)
- [`batch()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/batch)
- [`getGraph()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/getGraph)
- [`getName()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/getName)
- [`invoke()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/invoke)
- [`pick()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/pick)
- [`pipe()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/pipe)
- [`stream()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/stream)
- [`streamEvents()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/streamEvents)
- [`streamLog()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/streamLog)
- [`toJSON()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/toJSON)
- [`toJSONNotImplemented()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/toJSONNotImplemented)
- [`transform()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/transform)
- [`withConfig()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/withConfig)
- [`withFallbacks()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/withFallbacks)
- [`withListeners()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/withListeners)
- [`withRetry()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/withRetry)
- [`isRunnable()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/isRunnable)
- [`lc_name()`](https://reference.langchain.com/javascript/langchain-core/runnables/Runnable/lc_name)

---

[View source on GitHub](https://github.com/langchain-ai/langchainjs/blob/5c6c5fef0cb392e782675ca5926e291a4295a653/libs/langchain-core/src/runnables/base.ts#L124)