Entry points
One Persist subpath equals one optional peer — symbols and peer packages per entry.
One subpath = one optional peer. No barrel — importing a subpath is the dependency opt-in.
| Subpath | Symbols | Optional peer |
|---|---|---|
@stainless-code/persist |
persistSource, PersistApi, createStorage, createJSONStorage, createSessionStorage, createMigrationChain, jsonCodec, identityCodec, createPersistRegistry, toHydrationSignal, alwaysHydratedSignal |
none |
@stainless-code/persist/codecs/seroval |
serovalCodec, createSerovalStorage |
seroval |
@stainless-code/persist/codecs/standard-schema |
StandardSchemaV1, withStandardSchema, withStandardSchemaAsync, standardSchemaCodec, createStandardSchemaStorage, createStandardSchemaStorageAsync |
none |
@stainless-code/persist/backends/idb |
idbStateStorage, createIdbStorage (structured-clone mode) |
idb-keyval |
@stainless-code/persist/backends/async-storage |
asyncStorageStateStorage, createAsyncStorage |
@react-native-async-storage/async-storage |
@stainless-code/persist/backends/mmkv |
mmkvStateStorage, createMmkvStorage |
react-native-mmkv |
@stainless-code/persist/backends/secure-store |
secureStoreStateStorage, createSecureStoreStorage |
expo-secure-store |
@stainless-code/persist/backends/encrypted |
createEncryptedStorage (AES-GCM WebCrypto) |
none (web global) |
@stainless-code/persist/backends/compressed |
createCompressedStorage (gzip/deflate/deflate-raw) |
none (web global) |
@stainless-code/persist/backends/node-fs |
nodeFsStateStorage (one file per key) |
none (Node built-in) |
@stainless-code/persist/transport/crosstab |
createBroadcastCrossTab |
none (web global) |
@stainless-code/persist/sources/tanstack-store |
persistStore, persistAtom |
@tanstack/store (types only) |
@stainless-code/persist/sources/zustand |
persistStore |
zustand |
@stainless-code/persist/sources/jotai |
persistAtom |
jotai |
@stainless-code/persist/sources/valtio |
persistProxy |
valtio |
@stainless-code/persist/sources/mobx |
persistObservable |
mobx |
@stainless-code/persist/sources/pinia |
persistStore |
pinia |
@stainless-code/persist/sources/redux |
persistStore, persistableReducer |
redux |
@stainless-code/persist/frameworks/react |
useHydrated React hook |
react |
@stainless-code/persist/frameworks/preact |
useHydrated (Preact { hydrated: boolean }) |
preact (>=10.19) |
@stainless-code/persist/frameworks/solid |
useHydrated (Solid Accessor<boolean>) |
solid-js |
@stainless-code/persist/frameworks/angular |
useHydrated (Angular Signal<boolean>) |
@angular/core (>=17) |
@stainless-code/persist/frameworks/vue |
useHydrated (Vue Ref<boolean>) |
vue |
@stainless-code/persist/frameworks/lit |
HydrationController (Lit ReactiveController) |
lit (>=3) |
@stainless-code/persist/frameworks/alpine |
useHydrated + $hydrated plugin (Alpine reactive bag) |
alpinejs (>=3) |
@stainless-code/persist/frameworks/svelte |
hydratedRune (Svelte 5 runes current) |
svelte (>=5.7) |
@stainless-code/persist/frameworks/svelte-store |
hydratedStore (Svelte Readable<boolean>) |
svelte (>=3) |
Generated signatures: API reference.