đź§© 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-06-12T15:30:00Z
Built & documented using: FAST-CLI
v3.4.0
Blocks
Events:
BigDB has total 7 events.
1. Got
Fires when a value is retrieved
Parameter | Type |
---|---|
queryId | text |
value | text |
2. KeyList
Fires when a key list is returned
Parameter | Type |
---|---|
queryId | text |
keys | any |
3. DataChanged
Fires when data changes in the current table
4. ErrorOccurred
Fires when an error occurs
Parameter | Type |
---|---|
message | text |
5. RandomKeyRetrieved
Fires when a random key is retrieved
Parameter | Type |
---|---|
queryId | text |
key | text |
6. ExpiredKeysRetrieved
Fires when expired keys are retrieved
Parameter | Type |
---|---|
queryId | text |
keys | any |
7. TableSizeRetrieved
Fires when the table size is retrieved
Parameter | Type |
---|---|
queryId | text |
size | number |
Methods:
BigDB has total 39 methods.
1. EnableAutoCleanup
Enable or disable auto-cleanup of expired records at the specified interval (in seconds). Set interval to 0 to disable.
Parameter | Type |
---|---|
intervalSeconds | number |
2. PurgeExpired
Purge expired keys from the current table
3. SetPassword
Set database encryption password (PRAGMA key)
Parameter | Type |
---|---|
pwd | text |
4. RemovePassword
Remove encryption (PRAGMA rekey to empty)
5. IsEncrypted
Check if database is encrypted
- Return type:
boolean
6. Store
Store a value for a key with optional TTL and metadata
Parameter | Type |
---|---|
key | text |
value | text |
useTTL | boolean |
ttlSeconds | number |
metadata | text |
7. Get
Get the value for a key asynchronously
Parameter | Type |
---|---|
key | text |
queryId | text |
8. Delete
Delete a key
Parameter | Type |
---|---|
key | text |
9. Clear
Clear all data in the current table
10. RenameKey
Rename a key
Parameter | Type |
---|---|
oldKey | text |
newKey | text |
11. BulkStore
Store multiple key-value pairs
Parameter | Type |
---|---|
keys | list |
values | list |
12. BulkDelete
Delete multiple keys
Parameter | Type |
---|---|
keys | list |
13. Keys
List all keys in the current table asynchronously
Parameter | Type |
---|---|
queryId | text |
14. Exists
Check if a key exists
- Return type:
boolean
Parameter | Type |
---|---|
key | text |
15. GetRecord
Get full record as JSON asynchronously
Parameter | Type |
---|---|
key | text |
queryId | text |
16. FindByMetadata
Find keys by metadata substring asynchronously
Parameter | Type |
---|---|
query | text |
queryId | text |
17. Expire
Set expiry time in seconds for a key
Parameter | Type |
---|---|
key | text |
seconds | number |
18. SetMetadata
Set metadata for a key
Parameter | Type |
---|---|
key | text |
metadata | text |
19. GetMetadata
Get metadata for a key
- Return type:
text
Parameter | Type |
---|---|
key | text |
20. GetTTL
Get remaining TTL in seconds for a key (0 if none or expired)
- Return type:
number
Parameter | Type |
---|---|
key | text |
21. GetRandomKey
Get a random key from the current table asynchronously
Parameter | Type |
---|---|
queryId | text |
22. GetExpiredKeys
Get all expired keys from the current table asynchronously
Parameter | Type |
---|---|
queryId | text |
23. SetBulkExpiry
Set the same TTL for multiple keys
Parameter | Type |
---|---|
keys | list |
seconds | number |
24. CopyTable
Copy the current table to a new table
Parameter | Type |
---|---|
targetTable | text |
25. MergeTables
Merge records from source table into current table
Parameter | Type |
---|---|
sourceTable | text |
conflictStrategy | text |
26. GetTableSize
Get an estimated size of the current table asynchronously
Parameter | Type |
---|---|
queryId | text |
27. RenameTable
Rename the current table
Parameter | Type |
---|---|
newName | text |
28. DeleteTable
Delete a table
Parameter | Type |
---|---|
tableName | text |
29. CheckTableExists
Check if a table exists
- Return type:
boolean
Parameter | Type |
---|---|
tableName | text |
30. DeleteDatabase
Delete all tables in the database
31. 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 |
32. ImportCSV
Import data into current table from CSV
Parameter | Type |
---|---|
filename | text |
33. ExportJSON
Export current table as JSON string
- Return type:
text
34. ImportJSON
Import data into current table from JSON
Parameter | Type |
---|---|
json | text |
35. Count
Get total record count in current table
- Return type:
number
36. DBSize
Get database file size in bytes
- Return type:
number
37. ListTables
List all tables in database
- Return type:
any
38. Watch
Watch changes to a key in the current table
Parameter | Type |
---|---|
key | text |
queryId | text |
39. Unwatch
Stop watching changes to a key
Parameter | Type |
---|---|
key | text |
queryId | text |
Setter:
BigDB has total 1 setter property.
1. SetTable
Set the current table to operate on
- Input type:
text
FAQ
How to set TTL for a key (With TTL as true and false both)
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
Download the latest version from GitHub
All the versions of the extension are available in the Releases tab in the BigDB repository!
Please the Repository to show your support
Please share any feedback below! I will be happy to answer any questions. My other extensions are available here.
Regards
Sarthak Gupta