#typescript
Zerobyte is a simple web app that automates encrypted, compressed backups (using Restic) from local folders or remote shares to many storage types—including S3, GCS, Azure, rclone remotes, NFS, SMB and WebDAV—letting you schedule jobs, set retention rules, monitor progress, and restore files through a dashboard (it’s early-stage and may change). Installing requires Docker Compose and optional FUSE/SYS_ADMIN for remote mounts; rclone support lets you use 40+ cloud providers. Benefit: you get automatic, space-efficient, end-to-end encrypted backups with easy scheduling and restores, reducing manual work and risk of data loss.
https://github.com/nicotsx/zerobyte
🚀 Вышел стабильный JavaScript движок от Google для Android
Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}
#jetpack#js