v1.3.6 / 2024-07-05
Changes for All platforms
- The Core library now upgrades the C++ standard from C++17 to C++20 to make the most of morden C++ feature such as
Concept
& unordered containers withstd::string_view
as key. From now on, if you build MMKV by source (iOS, Windows, POSIX, etc), you will need a C++ compiler that supports the C++20 standard. If you only use MMKV in binary (Android, OHOS, etc), this upgrade of the C++ compiler is not required. - The key type changes from
std::string
tostd::string_view
, to avoid unnecessary string construction and destruction when the key is a raw string.
Android
- Use the latest ashmem API if possible.
- Use the latest API to get the device API level.
Flutter
- MMKV will try to load libmmkv.so before Dart code, to reduce the error of loading library in Android.
HarmonyOS NEXT
- Fix a bug that a
String
value might get truncated on encoding. - MMKV returns
undefined
when a key does not exist, previously a default value of the type (false
forboolean
,0
fornumber
, etc) is returned. - Add the feature to encode/decode a
float
value. - Add the feature to encode/decode a
TypedArray
value. - Support encoding a part of an
ArrayBuffer
.
iOS/macOS
- Hide the default
NSObject.initialize()
from Swift/ObjC to prevent potential misuse.
POSIX
- Support encode/decode
std::vector<T>
orstd::span<T>
values, with T as primitive types. - Fix a compile error on Linux env.
- Fix a compile error on the GNU compiler.
- Fix a compile error with some old version of zlib (on CentOS).
Python
- Python now runs on Windows. Check out the latest wiki for instructions.
Windows
- Support encode/decode
std::vector<T>
orstd::span<T>
values, with T as primitive types. - Python now runs on Windows. Check out the latest wiki for instructions.