concrete-python


Nameconcrete-python JSON
Version 2.5.1 PyPI version JSON
download
home_pagehttps://github.com/zama-ai/concrete/tree/main/frontends/concrete-python
SummaryA state-of-the-art homomorphic encryption framework
upload_time2024-02-08 12:27:34
maintainer
docs_urlNone
authorZama
requires_python>=3.8
licenseBSD-3-Clause
keywords fhe homomorphic encryption tfhe privacy security
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
<!-- product name logo -->
  <img width=600 src="https://user-images.githubusercontent.com/5758427/231207493-62676aea-4cb9-4bb4-92b0-20309c8a933a.png">
</p>
<hr/>
<p align="center">
  <a href="https://docs.zama.ai/concrete"> 📒 Read documentation</a> | <a href="https://zama.ai/community"> 💛 Community support</a> | <a href="https://github.com/zama-ai/awesome-zama"> 📚 FHE resources</a>
</p>
<p align="center">
<!-- Version badge using shields.io -->
  <a href="https://github.com/zama-ai/concrete/releases">
    <img src="https://img.shields.io/github/v/release/zama-ai/concrete?style=flat-square">
  </a>
  <!-- Link to tutorials badge using shields.io -->
  <a href="#license">
    <img src="https://img.shields.io/badge/License-BSD--3--Clause--Clear-orange?style=flat-square">
  </a>
<!-- Zama Bounty Program -->
  <a href="https://github.com/zama-ai/bounty-program">
    <img src="https://img.shields.io/badge/Contribute-Zama%20Bounty%20Program-yellow?style=flat-square">
  </a>
</p>
<hr/>

**Concrete** is an open-source FHE Compiler which simplifies the use of fully homomorphic encryption (FHE).

FHE is a powerful cryptographic tool, which allows computation to be performed directly on encrypted data without needing to decrypt it first. With FHE, you can build services that preserve privacy for all users. FHE is also great against data breaches as everything is done on encrypted data. Even if the server is compromised, in the end no sensitive data is leaked.

Since writing FHE programs can be difficult, Concrete, based on LLVM, make this process easier for developers.

## Main features

- Ability to compile Python functions (that may include NumPy) to their FHE equivalents, to operate on encrypted data
- Support for [large collection of operators](https://docs.zama.ai/concrete/getting-started/compatibility)
- Partial support for floating points
- Support for table lookups on integers
- Support for integration with Client / Server architectures

## Installation

|               OS / HW                       | Available on Docker | Available on PyPI |
| :-----------------------------------------: | :-----------------: | :--------------: |
|                Linux                        |         Yes         |       Yes        |
|               Windows                       |         Yes         |    Coming soon   |
|     Windows Subsystem for Linux             |         Yes         |       Yes        |
|            macOS 11+ (Intel)                |         Yes         |       Yes        |
| macOS 11+ (Apple Silicon: M1, M2, etc.)     |         Yes         |       Yes        |


The preferred way to install Concrete is through PyPI:

```shell
pip install -U pip wheel setuptools
pip install concrete-python
```

You can get the concrete-python docker image by pulling the latest docker image:

```shell
docker pull zamafhe/concrete-python:v2.0.0
```

You can find more detailed installation instructions in [installing.md](docs/getting-started/installing.md)

## Getting started

```python
from concrete import fhe

def add(x, y):
    return x + y

compiler = fhe.Compiler(add, {"x": "encrypted", "y": "encrypted"})
inputset = [(2, 3), (0, 0), (1, 6), (7, 7), (7, 1), (3, 2), (6, 1), (1, 7), (4, 5), (5, 4)]

print(f"Compiling...")
circuit = compiler.compile(inputset)

print(f"Generating keys...")
circuit.keygen()

examples = [(3, 4), (1, 2), (7, 7), (0, 0)]
for example in examples:
    encrypted_example = circuit.encrypt(*example)
    encrypted_result = circuit.run(encrypted_example)
    result = circuit.decrypt(encrypted_result)
    print(f"Evaluation of {' + '.join(map(str, example))} homomorphically = {result}")
```

or if you have a simple function that you can decorate, and you don't care about explicit steps of key generation, encryption, evaluation and decryption:

```python
from concrete import fhe

@fhe.compiler({"x": "encrypted", "y": "encrypted"})
def add(x, y):
    return x + y

inputset = [(2, 3), (0, 0), (1, 6), (7, 7), (7, 1), (3, 2), (6, 1), (1, 7), (4, 5), (5, 4)]

print(f"Compiling...")
circuit = add.compile(inputset)

examples = [(3, 4), (1, 2), (7, 7), (0, 0)]
for example in examples:
    result = circuit.encrypt_run_decrypt(*example)
    print(f"Evaluation of {' + '.join(map(str, example))} homomorphically = {result}")
```

## Documentation

Full, comprehensive documentation is available at [https://docs.zama.ai/concrete](https://docs.zama.ai/concrete).

## Target users

Concrete is a generic library that supports a variety of use cases. Because of this flexibility,
it doesn't provide primitives for specific use cases.

If you have a specific use case, or a specific field of computation, you may want to build abstractions on top of Concrete.

One such example is [Concrete ML](https://github.com/zama-ai/concrete-ml), which is built on top of Concrete to simplify Machine Learning oriented use cases.

## Tutorials

Various tutorials are proposed in the documentation to help you start writing homomorphic programs:

- How to use Concrete with [Decorators](https://docs.zama.ai/concrete/tutorials/decorator)
- Partial support of [Floating Points](https://docs.zama.ai/concrete/tutorials/floating_points)
- How to perform [Table Lookup](https://docs.zama.ai/concrete/tutorials/table_lookups)

If you have built awesome projects using Concrete, feel free to let us know and we'll link to it.


## Project layout

`concrete` project is a set of several modules which are high-level frontends, compilers, backends and side tools.
- `frontends` directory contains a `python` frontend.
- `compilers` directory contains the `concrete-compiler` and `concrete-optimizer` modules. `concrete-compiler` is a compiler that:
  - synthetize a FHE computation dag expressed as a [MLIR](https://mlir.llvm.org/) dialect
  - compile to a set of artifacts
  - and provide tools to manipulate those artifacts at runtime.
`concrete-optimizer` is a specific module used by the compiler to find the best, secure and accurate set of cryptographic parameters for a given dag.
- The `backends` directory contains implementations of cryptographic primitives on different computation unit, used by  `concrete-compiler` runtime. `concrete-cpu` module provides CPU implementation, while `concrete-cuda` module provides GPU implementation using the CUDA platform.
- The `tools` directory contains side tools used by the rest of the project.

## Need support?

<a target="_blank" href="https://community.zama.ai">
  <img src="https://github.com/zama-ai/concrete/assets/157474013/73328587-e9c5-461d-bb21-3055fb5195af">
</a>



## Citing Concrete
To cite Concrete in academic papers, please use the following entry:

```text
@Misc{Concrete,
  title={{Concrete: TFHE Compiler that converts python programs into FHE equivalent}},
  author={Zama},
  year={2022},
  note={\url{https://github.com/zama-ai/concrete}},
}
```

## License

This software is distributed under the BSD-3-Clause-Clear license. If you have any questions, please contact us at hello@zama.ai.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/zama-ai/concrete/tree/main/frontends/concrete-python",
    "name": "concrete-python",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "fhe,homomorphic,encryption,tfhe,privacy,security",
    "author": "Zama",
    "author_email": "hello@zama.ai",
    "download_url": "",
    "platform": null,
    "description": "<p align=\"center\">\n<!-- product name logo -->\n  <img width=600 src=\"https://user-images.githubusercontent.com/5758427/231207493-62676aea-4cb9-4bb4-92b0-20309c8a933a.png\">\n</p>\n<hr/>\n<p align=\"center\">\n  <a href=\"https://docs.zama.ai/concrete\"> \ud83d\udcd2 Read documentation</a> | <a href=\"https://zama.ai/community\"> \ud83d\udc9b Community support</a> | <a href=\"https://github.com/zama-ai/awesome-zama\"> \ud83d\udcda FHE resources</a>\n</p>\n<p align=\"center\">\n<!-- Version badge using shields.io -->\n  <a href=\"https://github.com/zama-ai/concrete/releases\">\n    <img src=\"https://img.shields.io/github/v/release/zama-ai/concrete?style=flat-square\">\n  </a>\n  <!-- Link to tutorials badge using shields.io -->\n  <a href=\"#license\">\n    <img src=\"https://img.shields.io/badge/License-BSD--3--Clause--Clear-orange?style=flat-square\">\n  </a>\n<!-- Zama Bounty Program -->\n  <a href=\"https://github.com/zama-ai/bounty-program\">\n    <img src=\"https://img.shields.io/badge/Contribute-Zama%20Bounty%20Program-yellow?style=flat-square\">\n  </a>\n</p>\n<hr/>\n\n**Concrete** is an open-source FHE Compiler which simplifies the use of fully homomorphic encryption (FHE).\n\nFHE is a powerful cryptographic tool, which allows computation to be performed directly on encrypted data without needing to decrypt it first. With FHE, you can build services that preserve privacy for all users. FHE is also great against data breaches as everything is done on encrypted data. Even if the server is compromised, in the end no sensitive data is leaked.\n\nSince writing FHE programs can be difficult, Concrete, based on LLVM, make this process easier for developers.\n\n## Main features\n\n- Ability to compile Python functions (that may include NumPy) to their FHE equivalents, to operate on encrypted data\n- Support for [large collection of operators](https://docs.zama.ai/concrete/getting-started/compatibility)\n- Partial support for floating points\n- Support for table lookups on integers\n- Support for integration with Client / Server architectures\n\n## Installation\n\n|               OS / HW                       | Available on Docker | Available on PyPI |\n| :-----------------------------------------: | :-----------------: | :--------------: |\n|                Linux                        |         Yes         |       Yes        |\n|               Windows                       |         Yes         |    Coming soon   |\n|     Windows Subsystem for Linux             |         Yes         |       Yes        |\n|            macOS 11+ (Intel)                |         Yes         |       Yes        |\n| macOS 11+ (Apple Silicon: M1, M2, etc.)     |         Yes         |       Yes        |\n\n\nThe preferred way to install Concrete is through PyPI:\n\n```shell\npip install -U pip wheel setuptools\npip install concrete-python\n```\n\nYou can get the concrete-python docker image by pulling the latest docker image:\n\n```shell\ndocker pull zamafhe/concrete-python:v2.0.0\n```\n\nYou can find more detailed installation instructions in [installing.md](docs/getting-started/installing.md)\n\n## Getting started\n\n```python\nfrom concrete import fhe\n\ndef add(x, y):\n    return x + y\n\ncompiler = fhe.Compiler(add, {\"x\": \"encrypted\", \"y\": \"encrypted\"})\ninputset = [(2, 3), (0, 0), (1, 6), (7, 7), (7, 1), (3, 2), (6, 1), (1, 7), (4, 5), (5, 4)]\n\nprint(f\"Compiling...\")\ncircuit = compiler.compile(inputset)\n\nprint(f\"Generating keys...\")\ncircuit.keygen()\n\nexamples = [(3, 4), (1, 2), (7, 7), (0, 0)]\nfor example in examples:\n    encrypted_example = circuit.encrypt(*example)\n    encrypted_result = circuit.run(encrypted_example)\n    result = circuit.decrypt(encrypted_result)\n    print(f\"Evaluation of {' + '.join(map(str, example))} homomorphically = {result}\")\n```\n\nor if you have a simple function that you can decorate, and you don't care about explicit steps of key generation, encryption, evaluation and decryption:\n\n```python\nfrom concrete import fhe\n\n@fhe.compiler({\"x\": \"encrypted\", \"y\": \"encrypted\"})\ndef add(x, y):\n    return x + y\n\ninputset = [(2, 3), (0, 0), (1, 6), (7, 7), (7, 1), (3, 2), (6, 1), (1, 7), (4, 5), (5, 4)]\n\nprint(f\"Compiling...\")\ncircuit = add.compile(inputset)\n\nexamples = [(3, 4), (1, 2), (7, 7), (0, 0)]\nfor example in examples:\n    result = circuit.encrypt_run_decrypt(*example)\n    print(f\"Evaluation of {' + '.join(map(str, example))} homomorphically = {result}\")\n```\n\n## Documentation\n\nFull, comprehensive documentation is available at [https://docs.zama.ai/concrete](https://docs.zama.ai/concrete).\n\n## Target users\n\nConcrete is a generic library that supports a variety of use cases. Because of this flexibility,\nit doesn't provide primitives for specific use cases.\n\nIf you have a specific use case, or a specific field of computation, you may want to build abstractions on top of Concrete.\n\nOne such example is [Concrete ML](https://github.com/zama-ai/concrete-ml), which is built on top of Concrete to simplify Machine Learning oriented use cases.\n\n## Tutorials\n\nVarious tutorials are proposed in the documentation to help you start writing homomorphic programs:\n\n- How to use Concrete with [Decorators](https://docs.zama.ai/concrete/tutorials/decorator)\n- Partial support of [Floating Points](https://docs.zama.ai/concrete/tutorials/floating_points)\n- How to perform [Table Lookup](https://docs.zama.ai/concrete/tutorials/table_lookups)\n\nIf you have built awesome projects using Concrete, feel free to let us know and we'll link to it.\n\n\n## Project layout\n\n`concrete` project is a set of several modules which are high-level frontends, compilers, backends and side tools.\n- `frontends` directory contains a `python` frontend.\n- `compilers` directory contains the `concrete-compiler` and `concrete-optimizer` modules. `concrete-compiler` is a compiler that:\n  - synthetize a FHE computation dag expressed as a [MLIR](https://mlir.llvm.org/) dialect\n  - compile to a set of artifacts\n  - and provide tools to manipulate those artifacts at runtime.\n`concrete-optimizer` is a specific module used by the compiler to find the best, secure and accurate set of cryptographic parameters for a given dag.\n- The `backends` directory contains implementations of cryptographic primitives on different computation unit, used by  `concrete-compiler` runtime. `concrete-cpu` module provides CPU implementation, while `concrete-cuda` module provides GPU implementation using the CUDA platform.\n- The `tools` directory contains side tools used by the rest of the project.\n\n## Need support?\n\n<a target=\"_blank\" href=\"https://community.zama.ai\">\n  <img src=\"https://github.com/zama-ai/concrete/assets/157474013/73328587-e9c5-461d-bb21-3055fb5195af\">\n</a>\n\n\n\n## Citing Concrete\nTo cite Concrete in academic papers, please use the following entry:\n\n```text\n@Misc{Concrete,\n  title={{Concrete: TFHE Compiler that converts python programs into FHE equivalent}},\n  author={Zama},\n  year={2022},\n  note={\\url{https://github.com/zama-ai/concrete}},\n}\n```\n\n## License\n\nThis software is distributed under the BSD-3-Clause-Clear license. If you have any questions, please contact us at hello@zama.ai.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "A state-of-the-art homomorphic encryption framework",
    "version": "2.5.1",
    "project_urls": {
        "Homepage": "https://github.com/zama-ai/concrete/tree/main/frontends/concrete-python"
    },
    "split_keywords": [
        "fhe",
        "homomorphic",
        "encryption",
        "tfhe",
        "privacy",
        "security"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a8c61cb0a20da067a029d5f479e38b1d296a20ab927099ce5d85375a1ecd9617",
                "md5": "c89937a341dba71847856b4af00da1d0",
                "sha256": "7251d8ee55c9773dc9bcb771b286200068cbc70a352969489ba5a8d40ccb99c0"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c89937a341dba71847856b4af00da1d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 43093454,
            "upload_time": "2024-02-08T12:27:34",
            "upload_time_iso_8601": "2024-02-08T12:27:34.075803Z",
            "url": "https://files.pythonhosted.org/packages/a8/c6/1cb0a20da067a029d5f479e38b1d296a20ab927099ce5d85375a1ecd9617/concrete_python-2.5.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "408cf5ff758bbf01863f9e9ecfac0eb9acdfa90c796a8a7131826af492bf76ae",
                "md5": "e66c20fb1876c7c75c3b2b24a6afd268",
                "sha256": "235bf2b65fa9a5510e46b47155fda75a52e2dce018b9b553b1ee0b4496d12335"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp310-cp310-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e66c20fb1876c7c75c3b2b24a6afd268",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 49797408,
            "upload_time": "2024-02-08T12:27:43",
            "upload_time_iso_8601": "2024-02-08T12:27:43.551522Z",
            "url": "https://files.pythonhosted.org/packages/40/8c/f5ff758bbf01863f9e9ecfac0eb9acdfa90c796a8a7131826af492bf76ae/concrete_python-2.5.1-cp310-cp310-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "77337c240173e507260ba6fcb67a51794092689519fed17a3eecb018cf0e6973",
                "md5": "a702fd3d44227419015ca66cb9f686ed",
                "sha256": "6cef83fceea20aa6806d24e96784394f759c7cbd734f194ef8efb2fff5619198"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a702fd3d44227419015ca66cb9f686ed",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 65545678,
            "upload_time": "2024-02-08T12:27:49",
            "upload_time_iso_8601": "2024-02-08T12:27:49.817949Z",
            "url": "https://files.pythonhosted.org/packages/77/33/7c240173e507260ba6fcb67a51794092689519fed17a3eecb018cf0e6973/concrete_python-2.5.1-cp310-cp310-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "430998a0a3a3bbd673c497e10a04acbaa77b2cc31e74a514dd04861fb15bd991",
                "md5": "e87ac0292ad7af1607a0d66afd8747c7",
                "sha256": "bf13c62a46c5a5a249d749a34f5671d080a767a7996bf4c0878aeaaddbd672ab"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e87ac0292ad7af1607a0d66afd8747c7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 43105609,
            "upload_time": "2024-02-08T12:27:55",
            "upload_time_iso_8601": "2024-02-08T12:27:55.784817Z",
            "url": "https://files.pythonhosted.org/packages/43/09/98a0a3a3bbd673c497e10a04acbaa77b2cc31e74a514dd04861fb15bd991/concrete_python-2.5.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "34860dc6ebb3c49b8b89e2170dcf1a35b46bdb4d961e29e30f9b1effdfd5d373",
                "md5": "8e19a94bc117f0429b2425820fc26b31",
                "sha256": "a9953917ac3eecbb2424f2efd8dfb9cbff02b98a7e8c140684f87112ad1a125d"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp311-cp311-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8e19a94bc117f0429b2425820fc26b31",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 49810217,
            "upload_time": "2024-02-08T12:28:01",
            "upload_time_iso_8601": "2024-02-08T12:28:01.131538Z",
            "url": "https://files.pythonhosted.org/packages/34/86/0dc6ebb3c49b8b89e2170dcf1a35b46bdb4d961e29e30f9b1effdfd5d373/concrete_python-2.5.1-cp311-cp311-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3454f0085e3014ef01715097f52225a99e444d292b10a8fe015b3ce286d89edc",
                "md5": "578812f3fbb93bcb1cb7daa98e93741c",
                "sha256": "34f8774fd68bfc9e281c51f4766ea4739ff869ceab589fac7976a1b6825a2959"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "578812f3fbb93bcb1cb7daa98e93741c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 65541328,
            "upload_time": "2024-02-08T12:28:06",
            "upload_time_iso_8601": "2024-02-08T12:28:06.064833Z",
            "url": "https://files.pythonhosted.org/packages/34/54/f0085e3014ef01715097f52225a99e444d292b10a8fe015b3ce286d89edc/concrete_python-2.5.1-cp311-cp311-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "440cd8aabfa52a03297fa5c2e7bc4c13bf74c744ac0090a63c6505b981d88d3b",
                "md5": "9759182e9031dca8ff18c61c24261517",
                "sha256": "ad0126a84b15500d0aeea480057df45ab3aa8628228ef726a3a2f254f7a6ecd6"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9759182e9031dca8ff18c61c24261517",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 43091751,
            "upload_time": "2024-02-08T12:28:11",
            "upload_time_iso_8601": "2024-02-08T12:28:11.996275Z",
            "url": "https://files.pythonhosted.org/packages/44/0c/d8aabfa52a03297fa5c2e7bc4c13bf74c744ac0090a63c6505b981d88d3b/concrete_python-2.5.1-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8ba01d6c8ce28228533eda41980187c22b20281ae137de40ce1b33769b3e354a",
                "md5": "e4d81448626114d5f12079ba613e8523",
                "sha256": "0ebdf576daedc5b3d487ea9217c31ffca4f6bb0dd633d00c50f095373ce004c4"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp38-cp38-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e4d81448626114d5f12079ba613e8523",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 49795894,
            "upload_time": "2024-02-08T12:28:16",
            "upload_time_iso_8601": "2024-02-08T12:28:16.583300Z",
            "url": "https://files.pythonhosted.org/packages/8b/a0/1d6c8ce28228533eda41980187c22b20281ae137de40ce1b33769b3e354a/concrete_python-2.5.1-cp38-cp38-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "98a59ece505aaf50255588d8f5327c296db2df0b6eae275a96cdbb422689d5fb",
                "md5": "12617d37468ed956d67a576f0093ead3",
                "sha256": "67a89c6030374d356e0164fba5f8779ac1acf2e7994d2fd0129c7218b3f6890f"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp38-cp38-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "12617d37468ed956d67a576f0093ead3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 65542685,
            "upload_time": "2024-02-08T12:28:22",
            "upload_time_iso_8601": "2024-02-08T12:28:22.104991Z",
            "url": "https://files.pythonhosted.org/packages/98/a5/9ece505aaf50255588d8f5327c296db2df0b6eae275a96cdbb422689d5fb/concrete_python-2.5.1-cp38-cp38-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ec0ce816287fc996c5ab60fb04ad10698d0093659a7614e89f972b3bcdec33c",
                "md5": "bde09249749177dc3257584c9964b7f5",
                "sha256": "2482e4eb518038a7f4f5c4fa647fe0ffce0acb49c3b3b657a3e49206b2856c86"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "bde09249749177dc3257584c9964b7f5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 43094294,
            "upload_time": "2024-02-08T12:28:27",
            "upload_time_iso_8601": "2024-02-08T12:28:27.747795Z",
            "url": "https://files.pythonhosted.org/packages/6e/c0/ce816287fc996c5ab60fb04ad10698d0093659a7614e89f972b3bcdec33c/concrete_python-2.5.1-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2c5f789c0452f0172757bbf5a1e2a4612de74efb9247a496cd784c807d55b77",
                "md5": "cbee490b224f449fae7d3efc9bf8380e",
                "sha256": "5b465e7181eab814b0a9bd1d1215e2bdde89e1ba7c7bf068081664003c64fcca"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp39-cp39-macosx_11_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cbee490b224f449fae7d3efc9bf8380e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 49798529,
            "upload_time": "2024-02-08T12:28:32",
            "upload_time_iso_8601": "2024-02-08T12:28:32.184701Z",
            "url": "https://files.pythonhosted.org/packages/c2/c5/f789c0452f0172757bbf5a1e2a4612de74efb9247a496cd784c807d55b77/concrete_python-2.5.1-cp39-cp39-macosx_11_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a5d2cf8bf45d81d922ee531dfd4acbcae7357eadb4d2c805f454c72cea330dc",
                "md5": "9a644b2f052e9712a60283984131a478",
                "sha256": "0ec8dbcdf7ce225aa3e2b72c82aa79e340dc6595b1c0e392b93fe9eb9dd72f4c"
            },
            "downloads": -1,
            "filename": "concrete_python-2.5.1-cp39-cp39-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9a644b2f052e9712a60283984131a478",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 65549626,
            "upload_time": "2024-02-08T12:28:37",
            "upload_time_iso_8601": "2024-02-08T12:28:37.246999Z",
            "url": "https://files.pythonhosted.org/packages/6a/5d/2cf8bf45d81d922ee531dfd4acbcae7357eadb4d2c805f454c72cea330dc/concrete_python-2.5.1-cp39-cp39-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-08 12:27:34",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zama-ai",
    "github_project": "concrete",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "concrete-python"
}
        
Elapsed time: 0.23758s