🧩 BigDB
Extension for MIT AI2BigDB - Advanced key-value storage with TTL, metadata, multi-table support, encryption, and more
My Other Extensions
Built by Sarthak Gupta
BigDB is a feature-rich, scalable, and secure alternative to TinyDB, designed for complex App Inventor projects. Its support for multi-table storage, TTL, encryption, asynchronous operations, and advanced querying makes it ideal for modern, data-intensive applications. Whether you're building a secure app, managing large datasets, or needing real-time notifications, BigDB provides the tools to elevate your App Inventor projects!
Benefits of BigDB vs. TinyDB in App Inventor 
BigDB (com.bigdb
) is a powerful key-value storage extension for App Inventor, offering advanced features that surpass the capabilities of TinyDB. Below are the key advantages of using BigDB, with comparisons to TinyDB:
Feature | BigDB | TinyDB | Benefit |
---|---|---|---|
Multi-Table Support ![]() |
Supports multiple tables for organized data (SetTable ). |
Single namespace only. | Better data organization and scalability. ![]() |
TTL (Time-to-Live) ![]() |
Set expiration times (Expire , PurgeExpired ). |
No TTL support. | Automates data lifecycle management. ![]() |
Metadata Support ![]() |
Store and query metadata (SetMetadata , FindByMetadata ). |
No metadata support. | Enhances data searchability and context. ![]() |
Encryption ![]() |
Database encryption (SetPassword , IsEncrypted ). |
No encryption. | Protects sensitive data. ![]() |
Asynchronous Operations ![]() |
Async data retrieval (Get , Keys ). |
Synchronous operations. | Improves app responsiveness. ![]() |
Bulk Operations ![]() |
Bulk store/delete (BulkStore , BulkDelete ). |
Individual operations only. | Speeds up large dataset management. ![]() |
Data Import/Export ![]() ![]() |
CSV and JSON support (ExportCSV , ImportJSON ). |
No built-in import/export. | Simplifies data portability. ![]() |
Change Notifications ![]() |
Watch key changes (Watch , Unwatch ). |
No notifications. | Enables reactive programming. ![]() |
Advanced Querying ![]() |
Query by metadata, JSON records (FindByMetadata , GetRecord ). |
Basic key-value retrieval. | Supports complex data operations. ![]() |
Database Management ![]() |
Check size, list tables (DBSize , ListTables ). |
No such utilities. | Improves storage monitoring. ![]() |
Indexing ![]() |
Automatic key indexing for faster lookups. | No indexing. | Enhances query performance. ![]() |
Error Handling ![]() |
Robust error reporting (ErrorOccurred ). |
Limited error feedback. | Simplifies debugging and reliability. ![]() |
Specifications
Package: com.bigdb
Size: 33.66 KB
Version: 1.0
Minimum API Level: 7
License: Free Extension License
Updated On: 2025-05-24T18:30:00Z
Built & documented using: FAST-CLI
v3.4.0
Blocks
Events:
BigDB has total 4 events.
DataChanged
Fires when data changes in the current table
ErrorOccurred
Fires when an error occurs
Parameter | Type |
---|---|
message | text |
Got
Fires when a value is retrieved
Parameter | Type |
---|---|
queryId | text |
value | text |
KeyList
Fires when a key list is returned
Parameter | Type |
---|---|
queryId | text |
keys | any |
Methods:
BigDB has total 28 methods.
BulkDelete
Delete multiple keys
Parameter | Type |
---|---|
keys | list |
BulkStore
Store multiple key-value pairs
Parameter | Type |
---|---|
keys | list |
values | list |
Clear
Clear all data in the current table
Count
Get total record count in current table
DBSize
Get database file size in bytes
Delete
Delete a key
Parameter | Type |
---|---|
key | text |
Exists
Check if a key exists
Parameter | Type |
---|---|
key | text |
Expire
Set expiry time in seconds for a key
Parameter | Type |
---|---|
key | text |
seconds | number |
ExportCSV
Export current table as CSV to the specified file path. If filePath is empty, uses the app's external files directory.
Parameter | Type |
---|---|
filePath | text |
ExportJSON
Export current table as JSON string
FindByMetadata
Find keys by metadata substring asynchronously
Parameter | Type |
---|---|
query | text |
queryId | text |
Get
Get the value for a key asynchronously
Parameter | Type |
---|---|
key | text |
queryId | text |
GetMetadata
Get metadata for a key
Parameter | Type |
---|---|
key | text |
GetRecord
Get full record as JSON asynchronously
Parameter | Type |
---|---|
key | text |
queryId | text |
GetTTL
Get remaining TTL in seconds for a key (0 if none or expired)
Parameter | Type |
---|---|
key | text |
ImportCSV
Import data into current table from CSV
Parameter | Type |
---|---|
filename | text |
ImportJSON
Import data into current table from JSON
Parameter | Type |
---|---|
json | text |
IsEncrypted
Check if database is encrypted
Keys
List all keys in the current table asynchronously
Parameter | Type |
---|---|
queryId | text |
ListTables
List all tables in database
PurgeExpired
Purge expired keys from the current table
RemovePassword
Remove encryption (PRAGMA rekey to empty)
RenameKey
Rename a key
Parameter | Type |
---|---|
oldKey | text |
newKey | text |
SetMetadata
Set metadata for a key
Parameter | Type |
---|---|
key | text |
metadata | text |
SetPassword
Set database encryption password (PRAGMA key)
Parameter | Type |
---|---|
pwd | text |
Store
Store a value for a key with optional TTL and metadata
Parameter | Type |
---|---|
key | text |
value | text |
useTTL | boolean |
ttlSeconds | number |
metadata | text |
Unwatch
Stop watching changes to a key
Parameter | Type |
---|---|
key | text |
queryId | text |
Watch
Watch changes to a key in the current table
Parameter | Type |
---|---|
key | text |
queryId | text |
Setter:
BigDB has total 1 setter property.
SetTable
Set the current table to operate on
- Input type:
text
Download the extension! 
This is a big project and I am making it available for free to the community. If you like my work please support here. It will make my day
BigDB V1 (1.0)- Released on 25/02/25
Please share any feedback below! I will be happy to answer any questions. My other extensions are available here.
Regards
Sarthak Gupta