🧩 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-25
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
Parameters:
keys
(list)
BulkStore
Store multiple key-value pairs
Parameters:
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
Parameters:
key
(text)
Exists
Check if a key exists
Parameters:
key
(text)
Expire
Set expiry time in seconds for a key
Parameters:
key
(text)seconds
(number)
ExportCSV
Export current table as CSV to the specified file path
Parameters:
filePath
(text)
ExportJSON
Export current table as JSON string
FindByMetadata
Find keys by metadata substring asynchronously
Parameters:
query
(text)queryId
(text)
Get
Get the value for a key asynchronously
Parameters:
key
(text)queryId
(text)
GetMetadata
Get metadata for a key
Parameters:
key
(text)
GetRecord
Get full record as JSON asynchronously
Parameters:
key
(text)queryId
(text)
GetTTL
Get remaining TTL in seconds for a key
Parameters:
key
(text)
ImportCSV
Import data into current table from CSV
Parameters:
filename
(text)
ImportJSON
Import data into current table from JSON
Parameters:
json
(text)
IsEncrypted
Check if database is encrypted
Keys
List all keys in the current table asynchronously
Parameters:
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
Parameters:
oldKey
(text)newKey
(text)
SetMetadata
Set metadata for a key
Parameters:
key
(text)metadata
(text)
SetPassword
Set database encryption password
Parameters:
pwd
(text)
Store
Store a value for a key with optional TTL and metadata
Parameters:
key
(text)value
(text)useTTL
(boolean)ttlSeconds
(number)metadata
(text)
Unwatch
Stop watching changes to a key
Parameters:
key
(text)queryId
(text)
Watch
Watch changes to a key in the current table
Parameters:
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.
https://github.com/techxsarthak/BigDB
Regards,
Sarthak Gupta