no changes in your code

In the master application you just need to change the URI filename to something like this:

“file:/path/to/file.db?replica=master&slave=tcp://server.ip:1234”




multi-slave replication

Each master database can have one or many replicas. These replicas can be handled by the same application or another one, in the same device or a distant one. Each connection can use a different communication protocol, and a different connection direction.




atomic slave updates using transactions

Updates in the slave replicas use the internal SQLite transaction engine at the pager level. The transactions are rolled back in the case of connection lost, keeping the database integrity. The slave application can read from the slave database using the SQLite interface.




point-in-time recovery

Database replication by itself does not guarantee data loss protection. If a table is dropped in the primary replica, it will be dropped in the secondary ones too, leaving no way to restore the data. With Point-in-time Recovery you can restore the database to a previous point in time, without the need to make backups and with almost no overhead on transactions.




many platforms

Windows, Linux, Android, iOS, MacOSX

It can be used in Mobile Phones, Tablets, Raspberry Pi, BeagleBone, other mini-pcs and IoT devices