Drivesync es una herramienta de línea de comandos escrita en Rust que mantiene sincronizada una carpeta local con otra de Google Drive. Funciona en sentido ascendente (subir cambios locales), descendente (descargar los remotos) o como simple comparador de diferencias, y está inspirada en odeke-em/drive. Se distribuye bajo licencia MIT y se instala en macOS y Linux mediante Homebrew (brew install scaleninja/tap/drivesync), como binario precompilado para arquitecturas x86_64 y arm64, o compilando desde el código fuente con la cadena de herramientas de Rust.
La configuración inicial exige crear un cliente OAuth en Google Cloud Console: habilitar la API de Drive, configurar la pantalla de consentimiento, añadir al usuario como tester y descargar el archivo JSON de credenciales. Ningún secreto se incrusta en el binario; los tokens se guardan en .gd/ dentro de la propia carpeta de sincronización con permisos 0600. Una advertencia práctica: las aplicaciones externas en modo Testing caducan el refresh token cada siete días, por lo que el autor recomienda publicar la app en la pantalla de consentimiento.
El flujo de uso se reduce a unos pocos comandos: init para autorizar y crear la carpeta espejo, push y pull para transferir en ambos sentidos mostrando un plan antes de ejecutar, diff para listar diferencias sin modificar nada, status para inspeccionar el estado y update-cache para reindexar el árbol remoto. Los argumentos admiten opciones como --no-prompt, --force, --threads, --refresh, --fast y --verify, y un archivo .driveignore con sintaxis tipo .gitignore permite excluir contenido. La sincronización compara tamaño y MD5 —calculado por el servidor de Drive— y solo sobrescribe cuando difieren; las colisiones y los conflictos se bloquean por defecto. Los archivos nativos de Google (Docs, Sheets, Slides) nunca se tocan, las subidas grandes se reanudan desde el último byte recibido y cada escritura se revalida justo antes de ejecutarse para evitar datos obsoletos.
