# mmkv **Repository Path**: ohos-rs/mmkv ## Basic Information - **Project Name**: mmkv - **Description**: A native binding for OpenHarmony - **Primary Language**: Rust - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-07 - **Last Updated**: 2024-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README --- editLink: true --- # @ohos-rs/mmkv MMKV is an efficient, small, easy-to-use mobile key-value storage framework used in the WeChat application. It's currently available on Android, iOS/macOS, Win32 and POSIX. In fact, mmkv can fully run on OpenHarmony devices. We provide a simple native binding for MMKV. ## Install ```shell ohpm install @ohos-rs/mmkv ``` ## API ```ts export interface InitOption { /** mmkv instance's log level */ logLevel?: MMKVLogLevel /** mmkv instance mode */ mode?: MMKVMode /** mmkv instance id if is empty, will use default. */ mmapId?: string } /** MMKV log level */ export const enum MMKVLogLevel { Debug = 0, Info = 1, Warning = 2, Error = 3, None = 4 } export const enum MMKVMode { SingleProcess = 1, MultiProcess = 2 } export class MMKV { constructor(rootDir: string, options?: InitOption | undefined | null) enableAutoKeyExpire(expire: number): void /** set bool to mmkv */ encodeBool(key: string, value: boolean, expire?: number | undefined | null): void /** get bool from mmkv */ decodeBool(key: string): boolean /** get string */ decodeString(key: string): string /** set string */ encodeString(key: string, value: string, expire?: number | undefined | null): void /** set number include int float etc.s */ encodeNumber(key: string, value: number, expire?: number | undefined | null): void /** get number */ decodeNumber(key: string): number /** set bigint which will store as `Vec`, and the first element is a flag, 1 for negative numbers. */ encodeBigint(key: string, value: bigint, expire?: number | undefined | null): void /** get bigint */ decodeBigint(key: string): bigint /** remove key or keys */ removeValueForKey(key: string | Array): void /** check key if existed */ containsKey(key: string): boolean /** get current mmkv instance's all keys */ allKeys(): Array /** get current mmkv instance's mmap id */ getMmapId(): string /** * get current mmkv instance's storage size * @default TOTAL */ getStorageSize(sizeType?: 'ACTUAL' | 'TOTAL'): number /** * get kv's count * @default false */ count(filterExpire?: boolean | undefined | null): number /** * get key's size * @default false */ getValueSize(key: string, actual?: boolean | undefined | null): number /** clear all kv with current mmkv */ clearAll(keepSpace?: boolean | undefined | null): void /** clear memory cache with current mmkv */ clearMemoryCache(keepSpace?: boolean | undefined | null): void /** basic method to back up data */ static backUpToDirectory(dir: string, mmapId?: string | undefined | null): void /** basic method to restore data */ static restoreFromDirectory(dir: string, mmapId?: string | undefined | null): void /** remove instance */ static removeStorage(mmapId: string): void } ``` ## Usage ```ts import { MMKV, MMKVLogLevel, MMKVMode } from '@ohos-rs/mmkv'; const m = new MMKV("/data/storage/el2/base/haps/entry/files/mmkv",MMKVLogLevel.Info,MMKVMode.SingleProcess); m.encodeBool("test",false,16000); const a = m.decodeBool("test"); ```