Python
O método padrão é substituir a biblioteca SQLite pré-instalada com a que compilamos contendo o LiteSync.
Linux
O módulo sqlite3 do Python faz interface com a biblioteca instalada libsqlite3.so.0
Podemos checar essa informação utilizando o comando abaixo:
ldd /usr/lib/python2.7/lib-dynload/_sqlite3.so
1. Obtenha o LiteSync
Você pode tanto compilá-lo ou utilizar os arquivos binários pré-compilados. Você pode solicitá-los por e-mail para fins de teste.
Ele deve ser instalado na pasta /usr/lib.
2. Instalação para o Python
Temos 3 opções para fazer com que o Python utilize a biblioteca modificada do SQLite contendo o LiteSync:
A. Utilize a variável de ambiente LD_LIBRARY_PATH quando abrir o Python
LD_LIBRARY_PATH=/usr/lib python app.py
B. Sobrescreva a biblioteca pré-instalada
cd /usr/lib/arm-linux-gnueabihf (or x86_64-linux-gnu, it depends on the architecture)
ln -sf /usr/lib/libsqlite3.so.0 libsqlite3.so.0
C. Configure o rpath na biblioteca wrapper
Para isso, precisamos do patchelf:
git clone https://github.com/NixOS/patchelf
cd patchelf
./bootstrap.sh
./configure
make
sudo make install
Para configurar o rpath na biblioteca wrapper:
patchelf --set-rpath /usr/lib /usr/lib/python2.7/lib-dynload/_sqlite3.so
Para checar se foi bem-sucedido:
objdump -p /usr/lib/python2.7/lib-dynload/_sqlite3.so | grep RPATH
Windows
Substitua o arquivo sqlite3.dll na pasta \Python\DLLs pelo que contém o LiteSync.
Utilização
Dessa forma, podemos utilizar o módulo sqlite3 normalmente, passando uma URI no lugar do nome do arquivo.
Código de exemplo:
import sqlite3
conn = sqlite3.connect('file:data.db?node=secondary&connect=tcp://server:port')