Skip to main content

A high performance asynchronous Python client for Memcached with full batteries included

https://readthedocs.org/projects/emcache/badge/?version=latest https://github.com/emcache/emcache/workflows/CI/badge.svg https://github.com/emcache/emcache/workflows/PyPi%20release/badge.svg

Emcache stands on the giant’s shoulders and implements most of the characteristics that are desired for a Memcached client based on the experience of other Memcached clients, providing the following main characteristics:

  • Support for many Memcached hosts, distributing traffic around them by using the Rendezvous hashing algorithm.

  • Support for different commands and different flag behaviors like noreply, exptime or flags.

  • Support for SSL/TLS protocol.

  • Support for SASL authentication by ASCII protocol.

  • Support for autodiscovery, which should work with AWS and GCP memcached clusters.

  • Adaptative connection pool, which increases the number of connections per Memcache host depending on the traffic.

  • Node healthiness traceability and an optional flag for disabling unhealthy for participating in the commands.

  • Metrics for operations and connections, send them to your favourite TS database for knowing how the Emcache driver is behaving.

  • Listen to the most significant cluster events, for example for knowing when a node has been marked as unhealthy.

  • Speed, Emcache is fast. See the benchmark section.

Usage

For installing

pip install emcache

The following snippet shows the minimal stuff that would be needed for creating a new client and saving a new key and retrieving later the value.

import asyncio
import emcache
async def main():
    client = await emcache.create_client([emcache.MemcachedHostAddress('localhost', 11211)])
    await client.set(b'key', b'value')
    item = await client.get(b'key')
    print(item.value)
    await client.close()
asyncio.run(main())

Emcache has currently support, among many of them, for the following commands:

  • get Used for retrieving a specific key.

  • gets Cas version that returns also the case token of a specific key.

  • get_many Many keys get version.

  • gets_many Many keys + case token gets version.

  • gat Used retrieving a specific key if exists and update expiration time(Get and Touch).

  • gats Cas version that retrieving a specific key if exists and update expiration time(Get and Touch with Cas).

  • gat_many Many keys gat version.

  • gats_many Many keys + case token gats version.

  • set Set a new key and value

  • add Add a new key and value, if and only if it does not exist.

  • replace Update a value of a key, if and only if the key does exist.

  • append Append a value to the current one for a specific key, if and only if the key does exist.

  • prepend Prepend a value to the current one for a specific key, if and only if the key does exist.

  • cas Update a value for a key if and only if token as provided matches with the ones stored in the Memcached server.

  • version Version string of this server.

  • flush_all Its effect is to invalidate all existing items immediately (by default) or after the expiration specified.

  • delete The command allows for explicit deletion of items.

  • touch The command is used to update the expiration time of an existing item without fetching it.

  • increment/decrement Commands are used to change data for some item in-place, incrementing or decrementing it.

  • cache_memlimit This command allow set in runtime cache memory limit.

  • stats Show a list of required statistics about the server, depending on the arguments.

  • verbosity Command control STDOUT/STDERR info, choose level and look logging memcached.

Take a look at the documentation for getting a list of all of the operations that are currently supported.

Some of the commands have support for the following behavior flags:

  • noreply for storage commands like set we do not wait for an explicit response from the Memcached server. Sacrifice the explicit ack from the Memcached server for speed.

  • flags for storage we can save an int16 value that can be retrieved later on by fetch commands.

  • exptime for storage commands this provides a way of configuring an expiration time, once that time is reached keys will be automatically evicted by the Memcached server

For more information about usage, read the docs.

Benchmarks

The following table shows how fast - operations per second - Emcache can be compared to the other two Memcached Python clients, aiomcache and pymemcache. For that specific benchmark two nodes were used, one for the client and one for the Memcached server, using 32 TCP connections and using 32 concurrent Asyncio tasks - threads for the use case of Pymemcache. For Emcache and Aiomcache uvloop was used as a default loop.

In the first part of the benchmark, the client tried to run as mucha set operations it could, and in a second step the same was done but using get operations.

Client

Concurrency

Sets opS/sec

Sets latency AVG

Gets opS/sec

Gets latency AVG

aiomcache

32

33872

0.00094

34183

0.00093

pymemcache

32

32792

0.00097

32961

0.00096

emcache

32

49410

0.00064

49212

0.00064

emcache (autobatching)

32

49410

0.00064

89052

0.00035

Emcache performed better than the other two implementations reaching almost 50K ops/sec for get and set operations. One autobatching is used it can boost the throughtput x2 (more info about autobatching below)

Another benchmark was performed for comparing how each implementation will behave in case of having to deal with more than 1 node, a new benchmark was performed with different cluster sizes but using the same methodology as the previous test by first, performing as many set operations it could and later as many get operations it could. For this specific use test with Aiomemcahce could not be used since it does not support multiple nodes.

Client

Concurrency

Memcahed Nodes

Sets opS/sec

Sets latency AVG

Gets opS/sec

Gets latency AVG

pymemcache

32

2

21260

0.00150

21583

0.00148

emcache

32

2

42245

0.00075

48079

0.00066

pymemcache

32

4

15334

0.00208

15458

0.00207

emcache

32

4

39786

0.00080

47603

0.00067

pymemcache

32

8

9903

0.00323

9970

0.00322

emcache

32

8

42167

0.00075

46472

0.00068

The addition of new nodes did not add almost degradation for Emcache, in the last test with 8 nodes Emcache reached 42K get ops/sec and 46K set ops/sec. On the other hand, Pymemcached suffered substantial degradation making Emcache ~x5 times. faster.

Autobatching

Autobatching provides you a way for fetching multiple keys using a single command, batching happens transparently behind the scenes without bothering the caller.

For start using the autobatching feature you must provide the parameter autobatching as True, hereby all usages of the get and gets command will send batched requests behind the scenes.

Get´s are piled up until the next loop iteration. Once the next loop iteration is reached all get´s are transmitted using the same Memcached operation.

Autobatching can boost up the throughput of your application x2/x3.

Development

Clone the repository and its murmur3 submodule

git clone --recurse-submodules git@github.com:emcache/emcache

Compile murmur3

pushd vendor/murmur3
make static
popd

Install emcache with dev dependencies

make install-dev

Testing

Run docker containers, add read write privileges

docker compose up -d
docker exec memcached_unix1 sh -c "chmod a+rw /tmp/emcache.test1.sock"
docker exec memcached_unix2 sh -c "chmod a+rw /tmp/emcache.test2.sock"

Run tests

make test

Metadata

Release files for emcache 1.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for emcache 1.3.3
File
emcache-1.3.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
emcache-1.3.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
emcache-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
emcache-1.3.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
emcache-1.3.3-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
emcache-1.3.3-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
emcache-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
emcache-1.3.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
emcache-1.3.3-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
emcache-1.3.3-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
emcache-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
emcache-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
emcache-1.3.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
emcache-1.3.3-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
emcache-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
emcache-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
emcache-1.3.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
emcache-1.3.3-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
emcache-1.3.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
emcache-1.3.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
emcache-1.3.3-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
emcache-1.3.3-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details
emcache-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
emcache-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
emcache-1.3.3-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
emcache-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
emcache-1.3.3-cp38-cp38-macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 5.4 MB

Release files / emcache-1.3.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 282.0 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ef67736580b621bc14d8f5c90344edaf96f786c5a939f4af91b3176e3fa71924
BLAKE2b-256 checksum
How to use checksums
c9cbd5ffffd1c408e4e1a73bda78468f71fe9620f6685b72a5c19488e23a529b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl

Download URL emcache-1.3.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Size 274.6 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
b5148b3064dcbad882e86c916f8f7c305a1780b51b2621bc951ed255d7185654
BLAKE2b-256 checksum
How to use checksums
2104f22168f085fc9eb3fa0625d74037c43f1fb715d45b1d9607aa525b3eabe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 283.0 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
635254f305734ef0a9439025c06fba71088efc3a7b6a43648abd015b1ece5fe0
BLAKE2b-256 checksum
How to use checksums
7ec958b3f6d553006ca69ac27708bdc3818de0cd0e2877ddfb7d4ad1d4f64cb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl

Download URL emcache-1.3.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Size 277.9 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
0e11e54f9478f5a6a4c911e6f293307d52ad4f143e00b2fdcac1560e8ece52c2
BLAKE2b-256 checksum
How to use checksums
2d181e19b79f5dec6b488ecb4d470976a3c972d2f1983b53dcf458a54ac8d548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp313-cp313-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp313-cp313-macosx_11_0_arm64.whl
Size 74.2 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f3cea8c3b7a761c5660762fd69bc656559087257c113ce6b62eb66ae9662609d
BLAKE2b-256 checksum
How to use checksums
9bfb8b6c5b4a33fb86e1ca81261437712fe4158c0750f92432e458b8b7141092
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl

Download URL emcache-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl
Size 74.6 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d4f441b86a3cffbe42149b15fcd2e083da82dc61913efcc517fb64724c5eadc7
BLAKE2b-256 checksum
How to use checksums
1644ea431285e8d46afe25a07b9ca3e3326dab10f38a0f6f92dd02dcd2894ace
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp313-cp313-macosx_10_13_universal2.whl

Download URL emcache-1.3.3-cp313-cp313-macosx_10_13_universal2.whl
Size 114.2 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f7f705181314529e5e19199416cd854cd4ec622dec113af5376854c761843c58
BLAKE2b-256 checksum
How to use checksums
5cdc0ba382866711a78974e0422738a9b4326d9bd7f131543723e660696ba3de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 289.7 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6118fc2c846632522a549553d7c8fc29f1bd3b3c6f4684651d33cb3815e85262
BLAKE2b-256 checksum
How to use checksums
697d4a6e8774ea3e1aa88b87b923be654dc835c82489e22e944ece91cfb01981
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl

Download URL emcache-1.3.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Size 284.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
e26ebcdc4d71b1945fa4a782457b5505a3fc4519bb5e55e9aac7c801d616dad5
BLAKE2b-256 checksum
How to use checksums
389ec6a0dc935e59905f49cc60d9ac52c4d56976130653e5aabe3d5b0d9f0736
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp312-cp312-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp312-cp312-macosx_11_0_arm64.whl
Size 74.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
db9506fb274bd35f20685b9bc886f68e9c77d4a094612fbcb852039139f0dd23
BLAKE2b-256 checksum
How to use checksums
e077da322ba5ab79187361af916a6b0ef2d10144f0383e62b9dd66380f359123
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl

Download URL emcache-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl
Size 75.1 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
40b4354955b34af43f74524f593b523aadba16dd583fd4866edba0a3b6666af0
BLAKE2b-256 checksum
How to use checksums
d23f5d6d0eb16b419206257e399ee694e1724e4649e9946ad7b0fc98011c7db7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp312-cp312-macosx_10_13_universal2.whl

Download URL emcache-1.3.3-cp312-cp312-macosx_10_13_universal2.whl
Size 115.1 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
b6c4f43745abc95c399caa22a35a89d11541b9d9037ec6da80bd91ba85648310
BLAKE2b-256 checksum
How to use checksums
862b71efd5c9fd8d129debf74543024ac65adb3c9e3313e1a09d7daadbb93b3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL emcache-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 270.3 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ba918ceea279180c444763bb8c5d22534ad111aec898531c40809ce9590845f0
BLAKE2b-256 checksum
How to use checksums
9c2fb6a0ed34f343dc091dbdcbaa51c4d5feebf47845dabc0f489506096ba924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 275.5 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e463ca3af633bb68ea0ba875f3ac7707195d722151ebd10cb4fe56a5c6ada4d0
BLAKE2b-256 checksum
How to use checksums
35838930425e5ff324d142105bb59eee33fb9439875559c9a238d2fc8dd9d561
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp311-cp311-macosx_11_0_arm64.whl
Size 74.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec5888c40f0e07e3f49a4dba46d93c5701f42ee783d4a0d87d6459294dbd40dc
BLAKE2b-256 checksum
How to use checksums
e71decd9756a156a9db1c46560e41594f8bf6093a181d5bd6f3c78d64852d737
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl

Download URL emcache-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl
Size 74.0 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b3a1023503032898027c16603719cb6d45a034c4230fe2346c8c8e787172f451
BLAKE2b-256 checksum
How to use checksums
f14e2587b007f91fa26d7d648d4ddb2379bb0c54a08bb0600e1b61cb84097573
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp311-cp311-macosx_10_9_universal2.whl

Download URL emcache-1.3.3-cp311-cp311-macosx_10_9_universal2.whl
Size 113.2 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f14718f3d637e874652b37920bd94efcf8a29fcaa53c0279fd8f00a2293a32c9
BLAKE2b-256 checksum
How to use checksums
810a49c6ba6d5bab4304838c67f6c534ff08a38dbf304d175debeb008022ca83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL emcache-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 256.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e7103c092e9ee76c985e9a48b5059b2e47112f99a9cb6b623549dc33c4f71204
BLAKE2b-256 checksum
How to use checksums
0e5d18a55db7134c8f528546f93688ccba9928a6661a0c9dbf9e0bdeed78426a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 262.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b31826e63a2808a8573255c3fd8757aee6b93782f3df1fdcc296390b7ac8b860
BLAKE2b-256 checksum
How to use checksums
d04035f67637f2d7ba6fef2a100e5cd0374e937323d2140de016f75c26c0be71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp310-cp310-macosx_11_0_arm64.whl
Size 74.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d02a079daef5289164c955da736ac28e2934251def63dd32c35c0995cb24c6be
BLAKE2b-256 checksum
How to use checksums
cde5cfe20673a321b8c634b6f8a9e3be9d6240c215b623effbaa2ed35bb4081c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl

Download URL emcache-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl
Size 74.1 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
8f24782f581d95b23284cb5e67eb1a6aab6e07cf3ffaf59de740ea5a1267d7ab
BLAKE2b-256 checksum
How to use checksums
8fa82bbb9415249a63834fd5a6908805cd50f33b54c427168d4653cdffe915dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp310-cp310-macosx_10_9_universal2.whl

Download URL emcache-1.3.3-cp310-cp310-macosx_10_9_universal2.whl
Size 113.5 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
4343f510327a0b5ea4cf1b1abdac5dd2a38e84d7227e9629b01507ef8d127b89
BLAKE2b-256 checksum
How to use checksums
3dd3ecade36df390632cb185b2f2b1f27e443f3ca40a8d22826702c4f6a4242b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL emcache-1.3.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 257.2 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
938864aa13a87cbda0eecf945bae8a180da57f49bb4bfbb0397adf51932e6c12
BLAKE2b-256 checksum
How to use checksums
fe79da8f6e56f8a29dbb91000849672f12aa0f2f69c5404713cac8744841ef0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 262.4 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5b132196d8e0087da5a9300752c927215f60203072d5cef5d5abb34bda50a8a7
BLAKE2b-256 checksum
How to use checksums
5c8177178a29432e19c76068bc23d01cf8209ff6b64db3ca6018b93592af6f0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp39-cp39-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp39-cp39-macosx_11_0_arm64.whl
Size 74.8 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4fc2a7bdb29be5a1c1996c223a98032da59596b84c21fb4146167557e622be9d
BLAKE2b-256 checksum
How to use checksums
c1930691c46b88fb9354e4eb42f9e075cac5669e2c23a34edf9e9283b234019d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl

Download URL emcache-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl
Size 74.8 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
3616b142c18ed011bc12a093be13c9b3a422f78eebe152a612a36c79f82efc88
BLAKE2b-256 checksum
How to use checksums
f8a369f8e528cd1a2b145f1ca549e0e7567a9fafb2a71e0768a89b12c2ff2002
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp39-cp39-macosx_10_9_universal2.whl

Download URL emcache-1.3.3-cp39-cp39-macosx_10_9_universal2.whl
Size 114.8 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
1344ae72a02e51b377fdf7c4fd84cf8c9a97af7282faf481c957f04afc0bf954
BLAKE2b-256 checksum
How to use checksums
4a674bda7135176146c9bfb219f4a239974444d809c8d84bfffb68637599bd04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emcache-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 266.0 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
60515a724e8d3f8d31c094661d37ad974af626f45e196812aea695eab86944f6
BLAKE2b-256 checksum
How to use checksums
9b6cb51dcef3471754e78c52270bd202ed483e308e5b3607b526bbda774ad1e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl

Download URL emcache-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_28_aarch64.whl
Size 274.4 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
07b4c40435c66eb66eaf0bc05b4d930f25584b547401028b0881ad46a7073754
BLAKE2b-256 checksum
How to use checksums
eb9f3abe4d20a4ddc1bddfa1d6e7c0c02be7517114166a658ec2af82dadedaa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp38-cp38-macosx_11_0_arm64.whl

Download URL emcache-1.3.3-cp38-cp38-macosx_11_0_arm64.whl
Size 76.9 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3bed67dbdb128ae36a2f36d59a1c801251107c679d257cc531907e38bcd37266
BLAKE2b-256 checksum
How to use checksums
653005782a51450809e12471e265ec79b9fff12101808c244565b5e7dcefd3b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl

Download URL emcache-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl
Size 76.8 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
a95643548f68b0b102fc0ea6cd3f53c912356ff18f7b06ac3aca30e3497eeda9
BLAKE2b-256 checksum
How to use checksums
5d47deefa0facf207b9323200bc4b9f49ee0496734e97189c564fc1bd87f98da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / emcache-1.3.3-cp38-cp38-macosx_10_9_universal2.whl

Download URL emcache-1.3.3-cp38-cp38-macosx_10_9_universal2.whl
Size 119.1 kB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
5bc25511dceb35dce6e19b9e96466a4624f42d59d29579a8799b9fc7d9bcb1ab
BLAKE2b-256 checksum
How to use checksums
1c51895b33e492390063663da778963b5c72d7d811a73a1defa7dc2b704032f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page