Skip to main content

Configurable and lightweight backup utility with deduplication and encryption.

Project description

Replicat

Configurable and lightweight backup utility with deduplication and encryption.

Compatibility

Python 3.8 (or newer) running on Linux, MacOS, or Windows.

Supported backup destinations

  • local path
  • Backblaze B2
  • Amazon S3
  • any S3-compatible service

You can implement and use your own adapter for pretty much any backup destination without changing the source code of Replicat.

Installation

It's available on PyPI, so

pip install replicat

Reasoning

For various reasons, I wasn't entirely happy with any of the similar projects that I've tried.

Highlights/goals of Replicat:

  • efficient, concise, easily auditable implementation
  • high customisability
  • few external dependencies
  • well-documented behaviour
  • unified repository layout
  • API that exists

This project borrows a few ideas from those other projects, but not enough to be considered a copycat.

Basics

You can use Replicat to backup files from your machine to a repository, located on a supported backend such as a local directory or cloud storage (like Backblaze B2). Files are transferred and stored in an optionally encrypted and chunked form, and references to chunks are stored in snapshots, along with file name and metadata.

To restore files from a snapshot, Replicat will download referenced chunks from the backend and use them to assemble the original files locally.

Replicat supports two types of repositories: encrypted (the default) and unencrypted. You may want to disable encryption if you trust your backend provider and network, for example. Duplicate chunks are reused between snapshots to save on bandwidth and storage costs.

See Cryptography for a more in-depth look into this, or Functional flow overview for the extremely cool and colorful diagrams that I worked really hard on.

Command line interface

The installer will create the replicat command (shortcut for python -m replicat).

There are several available subcommands:

  • init - initialises the repository using the provided settings
  • snapshot - creates a new snapshot in the repository
  • list-snapshots/ls - lists snapshots
  • list-files/lf - lists files across snapshots
  • restore - restores files from snapshots
  • add-key - creates a new key for the encrypted repository
  • delete - deletes snapshots by their names
  • clean - performs garbage collection
  • upload-objects - uploads objects to the backend (a low-level command)
  • download-objects - downloads objects from the backend (a low-level command)
  • list-objects - lists objects at the backend (a low-level command)
  • delete-objects - deletes objects from the backend (a low-level command)

⚠️ WARNING: do not upload to and delete from the repository at the same time using the same key or shared keys. For example, it's not safe to run snapshot and delete or clean concurrently, except when using independent keys.

There are several command line arguments that are common to all subcommands:

  • -r/--repository - used to specify the type and location of the repository backend (backup destination). The format is <backend>:<connection string>, where <backend> is the short name of a Replicat-compatible backend and <connection string> is open to interpretation by the adapter for the selected backend. For example, b2:bucket-name for the B2 backend, or local:some/local/path for the local backend (or just some/local/path, since the <backend>: part can be omitted for local destinations). If the backend requires additional arguments, they will appear in the --help output

  • -q/--hide-progress - suppresses progress indication for commands that support it

  • -c/--concurrent - the number of concurrent connections to the backend

  • --cache-directory - specifies the directory to use for cache. --no-cache disables cache completely

  • -v/--verbose - increases the logging verbosity. The default verbosity is warning, -v means info, -vv means debug

Encrypted repositories additionally require a key for every operation:

  • -K/--key-file - the path to the key file

If the repository is encrypted and the key is password-protected, a matching password is also required:

  • -P/--password-file - path to the file with the password (preferred)
  • -p/--password - the password in plaintext

If you often use many of these arguments, and their values mostly stay the same between invocations, you may find it easier to put them in a configuration file instead:

  • --profile - load settings from this profile in the configuration file
  • --config - path to the configuration file (check --help for the default config location)
  • --ignore-config - ignore the configuration file

Names of configuration file options mostly match the long names of command line arguments (e.g., hide-progress = true matches --hide-progress, repository = "s3:bucket" matches -r s3:bucket), but you can always refer to the Configuration file section for full reference.

Repository (-r, --repository) can also be provided as the REPLICAT_REPOSITORY environment variable. Password can be provided as the REPLICAT_PASSWORD environment variable.

If the backend needs additional parameters (account name, client secret, some boolean flag, or literally anything else), you'll also be able to set them via command line arguments, as environment variables, or in the configuration file. Refer to Backends section to learn more.

Note that values from CLI always take precedence over options from the configuration file. Specifically, to build the final configuration, Replicat considers global defaults, the configuration file (either the default one or the one supplied via --config), environment variables, and command line arguments, in that order.

Configuration file

As mentioned in the Command line interface section, options that you can put in the configuration file mostly match CLI arguments, with few exceptions.

Option name Type Supported values Notes
repository string <backend>:<connection string>
concurrent integer Integers greater than 0
hide‑progress boolean true, false
cache‑directory path Relative or absolute path
no‑cache boolean true, false
password string Password as a string Cannot be used together with password-file
password‑file path Relative or absolute path Cannot be used together with password
key string JSON as a string Cannot be used together with key-file
key‑file path Relative or absolute path Cannot be used together with key
log‑level string debug, info, warning, error, critical, fatal CLI option -v increases logging verbosity starting from warning, while this option lets you set lower logging verbosity, such as error

If the backend requires additional parameters (account id, access key, numeric port, or literally anything else), Replicat lets you provide them via the configuration file. For example, if you see a backend-specific argument --some-backend-option in the --help output, the equivalent configuration file option will be called some-backend-option.

Here's an example configuration file (it uses TOML syntax)

concurrent = 10
# Relative paths work
cache-directory = "~/.cache/directory/for/replicat"

[debugging]
log-level = "info"
hide-progress = true

[my-local-repo]
repository = "some/local/path"
password = "<secret>"
key = """
{
    "kdf": { ... },
    "kdf_params": { "!b": "..." },
    "private": { "!b": "..." }
}
"""
concurrent = 15
no-cache = true

[some-s3-repo]
repository = "s3:bucket-name"
key-id = "..."
access-key = "..."
region = "..."

Options that you specify at the top of the configuration file are defaults and they will be inherited by all of the profiles. In the example above there are three profiles (not including the default one):

  • debugging
  • my-local-repo
  • some-s3-repo

You can tell Replicat which profile to use via the --profile CLI argument (e.g. --profile my-local-repo).

Notice that some-s3-repo includes options that were not listed in the table. key-id, access-key, region are the backend-specific options for the S3 backend (Backends).

Backends

Run replicat commands with -r <backend>:<connection string> and additional arguments that are specific to the selected backend. Those arguments may have defaults and may also be provided via environment variables or profiles. Use

replicat <command> -r <backend>:<connection string> --help

to see them.

Local

The format is -r local:some/local/path, or simply -r some/local/path.

B2

The format is -r b2:bucket-id or -r b2:bucket-name. This backend uses B2 native API and requires

  • key ID (--key-id argument, or B2_KEY_ID environment variable, or key-id option in a profile)
  • application key (--application-key argument, or B2_APPLICATION_KEY environment variable, or application-key option in a profile)

Sign into your Backblaze B2 account to generate them. Note that you can use the master application key or a normal (non-master) application key that can be restricted to a single bucket. Refer to official B2 docs for more information.

S3

The format is -r s3:bucket-name. Requires

  • AWS key ID (--key-id argument, or S3_KEY_ID environment variable, or the key-id option in a profile)
  • AWS access key (--access-key argument, or S3_ACCESS_KEY environment variable, or access-key option in a profile)
  • region (--region argument, or S3_REGION environment variable, or region option in a profile)

S3-compatible

The format is -r s3c:bucket-name. Requires

  • key ID (--key-id argument, or S3C_KEY_ID environment variable, or the key-id option in a profile)
  • access key (--access-key argument, or S3C_ACCESS_KEY environment variable, or access-key option in a profile)
  • host (--host argument, or S3C_HOST environment variable, or host option in a profile)
  • region (--region argument, or S3C_REGION environment variable, or region option in a profile)

Host must not include the scheme. The default scheme is https, but can be changed via the --scheme argument (or, equivalently, the S3C_SCHEME environment variable or scheme option in a profile).

You can use S3-compatible backend to connect to B2, S3, and many other cloud storage providers that offer S3-compatible API.

Custom backends

replicat.backends is a Python namespace package, making it possible to add custom backends without changing replicat source code. See this guide for a complete walkthrough.

If you've created a Replicat-compatible adapter for a backend that Replicat doesn't already support and your implementation doesn't depend on additional third-party libraries (or at least they are not too heavy and can be moved to extras), consider submitting a PR to include it in this repository.

Custom settings

Replicat's default parameters and selection of cryptographic primitives should work well for most users but they do allow for some customisation if you know what you are doing. Refer to Encryption > Settings for more information.

Security

If you believe you've found a security issue with Replicat, please report it to flwaultah@gmail.com (or DM me on Twitter or Telegram).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

replicat-1.5.0.tar.gz (65.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

replicat-1.5.0-cp313-cp313-win_amd64.whl (132.0 kB view details)

Uploaded CPython 3.13Windows x86-64

replicat-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (153.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl (126.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

replicat-1.5.0-cp312-cp312-win_amd64.whl (131.9 kB view details)

Uploaded CPython 3.12Windows x86-64

replicat-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (153.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl (126.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

replicat-1.5.0-cp311-cp311-win_amd64.whl (131.8 kB view details)

Uploaded CPython 3.11Windows x86-64

replicat-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (154.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl (126.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

replicat-1.5.0-cp310-cp310-win_amd64.whl (130.5 kB view details)

Uploaded CPython 3.10Windows x86-64

replicat-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (152.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl (125.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

replicat-1.5.0-cp39-cp39-win_amd64.whl (130.0 kB view details)

Uploaded CPython 3.9Windows x86-64

replicat-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (152.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl (125.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

replicat-1.5.0-cp38-cp38-win_amd64.whl (130.4 kB view details)

Uploaded CPython 3.8Windows x86-64

replicat-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

replicat-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (152.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

replicat-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl (124.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file replicat-1.5.0.tar.gz.

File metadata

  • Download URL: replicat-1.5.0.tar.gz
  • Upload date:
  • Size: 65.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0.tar.gz
Algorithm Hash digest
SHA256 212a96c4fc8f4db1514aa40a8cb2b2768a8e294886b0917fcc2f94d604bff95f
MD5 e68524d3a7bbe0633139e4a20001c5bd
BLAKE2b-256 58fa685d626d7200f9068abbd136ebaf09461a2dd56b7f822ddbabff6d7b4df2

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 132.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 978a69000ba41fbe3fbc220b30d30a0937136d811f893681ecdf961d05f78b55
MD5 a4b98f6066e9e7b3f1e8b43eb6238309
BLAKE2b-256 d08ce52477ad564ffbbbfd2b0c02ae61e15004b88d433fc5cdf5f63cc3b6a895

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a82bf01a6c8208694c084b4c5326281f9822284cc34a4bafceada8d397262236
MD5 347d95879b1df3437e8919d88b657e62
BLAKE2b-256 9d1e9677379167c0516ce9b631ca3429d876d3b96bbb813d50db2b61562ee74b

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b46acca7208d07f513d8bb11b0b5d5dc6ab3a49063e7caaed190f8121fe0427
MD5 89346af5c6fd874d40534d105c878df3
BLAKE2b-256 c41133dad676c7f6fb7842ec9bfcb995a731974a6ca638d4041741e0480a67de

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 be9409f3793d6f82a968a318af1792ada7ee1998ff908b171509a10677a9a102
MD5 0d15462d42f05200d3e1baf0c2a1cbe5
BLAKE2b-256 d005ada19ad5a71b4f17ba372c0ef8ea8f137998e4e7cddb3f081ceec4cdf913

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 131.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d4e0f28392ed7f6b047ce1897366498be6e4d8ebfbf1949f822c4f703ae6191f
MD5 83810c8ddd7c04e3ce56eaa7b28af67f
BLAKE2b-256 56f71606ee79eb78e1498ae0c7fc118782741e54457f52f97bdfbceb691655ac

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aea4ddb1b0c64ea657a1c2cf4ec75dc69180d207c09c79807c6675b23ade6fbe
MD5 0dea21d4c06c2b65b20172eab73446c5
BLAKE2b-256 521749b8e45f60e9c8d5aaf333b68c43723391a2f34aea36944ffecf4ada3c7a

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4e34b18e02fbbcf9124a8cd3f0c14673e26c2a54256e2be27b42429390a0892
MD5 bcecc952c3967fe0a181c2ef14bdb8ac
BLAKE2b-256 490349513438ada3d8bf4f3d232ace52a8cbaf917f1ef9f3d2a20ff6ad71e8c5

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 049cbe0f1ca3955c4571db2d201a84baafe99a20f7eacd9c103027fe05bcf40c
MD5 401c9c88e3b981bad6a981acac727e3e
BLAKE2b-256 47231cab0819b082d5cfff03e5e5ea25be87b35fa35374e1dd79cb57c6e58c18

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 131.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 be86daab7a3bf5baf070199a60a948869d6ffa63eb0bd8ff5495cecc1bab89d9
MD5 ad142b33bb83703bea2288b969dd3181
BLAKE2b-256 b87e540a80b29fff505af7389198417fa3180bb0ee83d30f6a5cd7e0fd7ceb88

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 701ead6f5f9ea4fb4f618e23793165c560b1b7c899274b11639c17dba027650e
MD5 9d6bb640841116dd53d054de0e4d5979
BLAKE2b-256 6e503bf3429d0314f8a529e74f1df582ae8166f807b5fcbcae9bec4e1082c03f

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4148e104b99f2b2b25d66f8f19e6a7016db094affeb7b3999e786ed6bd651f19
MD5 58894cbabc574937ef6d2c906706559a
BLAKE2b-256 cf5c05c5e8661be5cb9db68ebee3c8f4e1140c4564cb8da77798cc4c87955600

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3550551b2aa483484ef9a043294a3fb90303ec536a299c624f9f71d4a6dced7a
MD5 e00e5b5c975c0080e0e143eee31586c0
BLAKE2b-256 8a6fb4988a104fa4bc39dba4fab46c3305809aa4a0b278a8b31c5625f9c4d018

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 130.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0159aac559e15d865b9f416113be3e70afb1a6c0876273f7c6337d6f5a428960
MD5 072cc5d0f229d634b159e71f5c555eae
BLAKE2b-256 ff61ca7e20edd18c5cae5736b3e653d6399d9dab3cefa655ea353e90a4aca5b2

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2873a50654baac0570a28759fffca8c7054780b0545bfbbef8176fc1a0ec848a
MD5 5272df1e0b69e3428873137703a53430
BLAKE2b-256 05b68671aacfde4e9aa3da99be4b1bfc1ac3a5403020ebd545ebb1f63a3749b8

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a6cd628fe662527668a9ea0ec146c2db7051b71b11f98a3f8349e6b89cf5e42
MD5 769efdf88601c8d18c3e4e54376b268f
BLAKE2b-256 6ac7457855c007c490a2ea4feba1b3e484e1df14fe384267f65286c25297182d

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e42d167fff0a9718edf3d22a0de8a0f46409d1d014b4436084ce62ab97621674
MD5 e716907dd8d2d365461f2f6e496e144a
BLAKE2b-256 6a89d5ef62751f0cc60e7ff32d325a4d7f39160691c424aa7c444a49718afca6

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 130.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 adc603cdb977e8f2f2830d821c5b20e334f2a90ea9c2af872f33111fd6e93829
MD5 c69691e8fe8e5f9023b257c538ef8ed2
BLAKE2b-256 75ffcf71b482405609128b48ed03c5096905f941f9e59c17ce6334ac243ec9a3

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec40d0764da5e353ef797b41050d49d8fe3d59d213cff4809eb173ca17300ce7
MD5 bccc44fc2252c0e1ec1df33297d496cb
BLAKE2b-256 d233e00b61336ae81e0ca78ac8a523b10820e36c536adc583b0ae5e8a047750d

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3497690ace63fe6e1137886f549ed76237b7dfb32214f8802edfb7126f447c5c
MD5 ae4eb3f41f2aa1403e1ea9dff0067487
BLAKE2b-256 c9a5b261d01f57570a1cacbf9a4d367e0576e0c375f2ce66ca7b0f99502db944

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 398828058891a210e762813a2cfa355d481b333ce186cd3a3f8ae5c920417e2c
MD5 74aafef0877e60de3525ffe5a7b30a5d
BLAKE2b-256 96265638432d40fec31e45109428db3957961e0416e673906257b9ae2d1b3968

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: replicat-1.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 130.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for replicat-1.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cd96af421a17f097d1ab677a089d1fed48e455564d238d606ea6142d36aac53c
MD5 61d409fbf65045a2fc64042235a75d88
BLAKE2b-256 6e0799e93b44716e1861d208fe2bdab92b4b0fa3499bda94813e2e844b20403c

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5cc92e2aab298877cf5fa66adc71805734ed24da3e00c86f502fc095c7f9ce4a
MD5 35991f32317e272848469b0ac8111d04
BLAKE2b-256 2bafc53eaa376ceeba8d5f5a26092f7e0e467078f95a9bef6b640ba269720ccd

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7826dd49c2dee75d6ff054591fd6e36edaef86555329c386d2151948ecf47542
MD5 83108948a390372f45632ef870a09102
BLAKE2b-256 2d09ccb24ee2b04de71f7dff6a1ecd9437de20c636b53538fb3e7ca854d4ce59

See more details on using hashes here.

File details

Details for the file replicat-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for replicat-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5e3d4c2f1dcd89691ef7b8adc1f94f8f354b63e92deb34509a28313fcaf04919
MD5 ee79cc7ccc52e07c9304c3f6cda0d2b7
BLAKE2b-256 9116ce0705093add69ef1d8ef62d4286bd5aef2429f7a5c0a67a4b918e1be929

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page