restic is a fast, secure, and efficient backup program written in Go. It provides a command-line interface with subcommands for creating, restoring, managing, and verifying backups. The architecture is modular: a core repository layer handles encryption (AES-256-GCM), content-defined chunking for deduplication, compression (zstd), and pack-file storage. Multiple storage backends are supported via a common interface, including local filesystem, SFTP, S3, Azure Blob, Google Cloud Storage, Backblaze B2, OpenStack Swift, and rclone. The codebase is production-grade with extensive unit and integration tests, a FUSE mount for browsing snapshots, and a self-update mechanism. It is actively maintained with frequent releases and a large community.
This repository is a PHP 5.x polyfill library that provides implementations of the `random_bytes()` and `random_int()` cryptographic functions introduced in PHP 7. The library implements a fallback chain of secure random sources: libsodium extension, /dev/urandom (Unix), mcrypt_create_iv(), and CAPICOM (Windows). It throws exceptions when no secure random source is available rather than falling back to insecure alternatives. The library features modular implementation with separate files for each random source, along with utility functions for mbstring.func_overload-safe string operations and safe integer casting. It includes comprehensive unit tests and maintains compatibility with PHP versions from 5.2 through current versions by disabling itself on PHP 7.0+.