I have developed a generic sync solution called WebSqlSync. 
It's not dependant of any framework.
It's available here :
https://github.com/orbitaloop/WebSqlSync
Extract of the README file :
WebSqlSync
Automatically synchronize a local WebSql database (SQLite in the navigator) to a server. (2 way sync : client <-> server)
Very easy to integrate to your existing app and very easy to use (2 functions to call : initSync and syncNow)
Usage
Initialize
You need to initialize the lib (at each startup for example).
It will automatically create 2 tables (if they don't already exists, one to store all the new or modified elements (table new_elem) and one to store the date of the last sync (table sync_info). It will also create SQLite triggers in order to watch the INSERT or UPDATE on the tables you want to synchronize (to automatically insert the modified elements in the new_elem table):
DBSYNC.initSync(TABLES_TO_SYNC, webSqlDb, sync_info, 'http://www.myserver.com', callBackEndInit);
Where TABLES_TO_SYNC is the list of table that you want to sync with the server, ex :
TABLES_TO_SYNC = [
    {tableName : 'table1', idName : 'the_id'},
    {tableName : 'table2'} //if idName not specified, it will assume that it's "id"
];
Synchronize
To start the synchronization, you need to call the syncNow function. You can call it every X seconds, or after some changes for example :
DBSYNC.syncNow(callBackSyncProgress, function(result) {
     if (result.syncOK === true) {
         //Synchronized successfully
     }
});
And that's all you need to do on the client. On the server side, you will need to code your own solution (but it's not complicated). And there are some example inPHP & Java. Again, contributions are welcome.