armink/FlashDB
armink/FlashDB has 2,890 GitHub stars and 571 forks. GitHot measured +11 in 7 days. Last checked 2026-11-10 19:59 UTC. Last push 2026-10-29.
An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
What you can do
- Very small footprint, ram usage is almost 0;
- Support multiple partitions, multiple instances. When the amount of data is large, the partition can be refined to reduce the retrieval time;
- Support wear balance to extend Flash life;
- Support Power-off protection function, high reliability;
측정된 스타 증가
- in 24h
- 업데이트 지연
- in 7 days
- +11
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
Original
EN | 中文
Introduction
FlashDB is an ultra-lightweight embedded database that focuses on providing data storage solutions for embedded products. Different from traditional database based on file system, FlashDB combines the features of Flash and has strong performance and reliability. And under the premise of ensuring extremely low resource occupation, the service life of Flash should be extended as much as possible.
FlashDB provides two database modes:
- Key-value database: It is a non-relational database that stores data as a collection of key-value pairs, where the key is used as a unique identifier. KVDB has simple operation and strong scalability.
- Time Series Database: Time Series Database (TSDB), which stores data in time sequence. TSDB data has a timestamp, a large amount of data storage, and high insertion and query performance.
Usage scenario
Nowadays, there are more and more types of IoT products, and the types and total amount of data generated during operation are also increasing. FlashDB provides a variety of data storage solutions, not only has a small resource footprint, but also has a large storage capacity, which is very suitable for IoT products. The following are the main application scenarios:
- Key-value database:
- Product parameter storage
- User configuration information storage
- Small file management
- Time Series Database:
- Store dynamically generated structured data: such as environmental monitoring information collected by temperature and humidity sensors, human health information recorded in real time by smart bracelets, etc.
- Record operation log: store operation log of product history, record of abnormal alarm, etc.
Key Features
- Very small footprint, ram usage is almost 0;
- Support multiple partitions, multiple instances. When the amount of data is large, the partition can be refined to reduce the retrieval time;
- Support wear balance to extend Flash life;
- Support Power-off protection function, high reliability;
- Supports two KV types, string and blob, which is convenient for users to operate;
- Support KV incremental upgrade, after product firmware upgrade, KVDB content also supports automatic upgrade;
- Support to modify the status of each TSDB record to facilitate user management;
Performance and footprint
TSDB performance test 1 (nor flash W25Q64)
msh />tsl bench
Append 1250 TSL in 5 seconds, average: 250.00 tsl/S, 4.00 ms/per
Query total spent 2218 (ms) for 1251 TSL, min 1, max 2, average: 1.77 ms/per
Insert average: 4 ms, query average: 1.8 ms
TSDB performance test 2 (stm32f2 onchip flash)
msh />tsl bench
Append 13421 TSL in 5 seconds, average: 2684.20 tsl/S, 0.37 ms/per
Query total spent 1475 (ms) for 13422 TSL, min 0, max 1, average: 0.11 ms/per
Insert average: 0.37 ms, query average: 0.12 ms
Footprint (stm32f4 IAR8.20)
Module ro code ro data rw data
------ ------- ------- -------
fdb.o 276 232 1
fdb_kvdb.o 4 584 356 1
fdb_tsdb.o 1 160 236
fdb_utils.o 418 1 024
The above is the map file information of IAR. It can be seen that the footprint of FlashDB is very small.
How to use
FlashDB provides comprehensive documentation, see: https://armink.github.io/FlashDB/#/
Quick access:
License
The project uses the Apache-2.0 open source protocol. For details, please read the contents of the LICENSE file in the project.
관련 프로젝트 살펴보기
Asabeneh/30-Days-Of-Python
30 Days of Python 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,830 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,395 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,473 스타