# create_lc_store

> **Function** in `langchain_classic`

📖 [View in docs](https://reference.langchain.com/python/langchain-classic/storage/_lc_store/create_lc_store)

Create a store for LangChain serializable objects from a bytes store.

!!! danger "Treat the underlying byte store as a trust boundary"

    Reads from this store are deserialized with
    `langchain_core.load.loads`, which instantiates Python objects from
    the stored payload. The same threat model applies: a payload can
    carry constructor kwargs (custom `base_url`, headers, model name,
    etc.) that get applied during `__init__`, so the bytes are
    effectively executable configuration rather than plain data.

    **Never back this store with anything an attacker can write to** —
    for example a shared cache that other tenants can populate, an
    S3 bucket without strict write controls, or a Redis instance reused
    across trust boundaries. A single tampered value will instantiate
    attacker-controlled classes the next time the store is read.

    If you cannot guarantee the store is write-restricted to your own
    process, use `create_kv_docstore` instead — it pins
    `allowed_objects=[Document]` so a tampered value can at worst
    produce a `Document`, never a chat model or LLM with a redirected
    endpoint.

## Signature

```python
create_lc_store(
    store: ByteStore,
    *,
    key_encoder: Callable[[str], str] | None = None,
) -> BaseStore[str, Serializable]
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `store` | `ByteStore` | Yes | A bytes store to use as the underlying store. |
| `key_encoder` | `Callable[[str], str] \| None` | No | A function to encode keys; if `None` uses identity function. (default: `None`) |

## Returns

`BaseStore[str, Serializable]`

A key-value store for `Document` objects.

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/42f8f79293cfb7589e5bc1d74a8ae4dfd0bf15e3/libs/langchain/langchain_classic/storage/_lc_store.py#L55)