Commit Graph

50 Commits

Author SHA1 Message Date
youben11
66b5c0585c docs(frontend): save eval keys only in TFHE-rs examples 2024-12-24 09:14:13 +01:00
youben11
ba6bf85bd8 feat(frontend): support modules in TFHE-rs bridge 2024-12-19 10:56:01 +01:00
youben11
0b93351efe docs(frontend): fix punctuation
Co-authored-by: yuxizama <yuxi.zhao@zama.ai>
2024-12-18 13:48:27 +01:00
youben11
b20e5ae37e feat(frontend): use shapes in tfhers-utils 2024-12-18 10:44:53 +01:00
youben11
b64e6f71e3 docs(frontend): TFHE-rs interop example using ML model
Co-authored-by: jfrery <jordan.frery@zama.ai>
2024-12-18 10:44:47 +01:00
youben11
3f374585e8 docs(frontend): update TFHE-rs guide 2024-11-14 11:56:40 +01:00
youben11
3f52db55eb feat(frontend): load TFHE-rs integer type from saved params (JSON) 2024-11-14 11:56:40 +01:00
Bourgerie Quentin
bbbf8efc0b test(frontend-python): Remove sha256 example before refactoring 2024-11-12 14:09:35 +01:00
Alexandre Péré
a9e03e242e fix(frontend): remove compat.h 2024-10-14 14:27:47 +02:00
aquint-zama
fd9db12886 chore(frontend): bench examples on hpc7a
close #854
2024-10-09 13:57:02 +02:00
youben11
7e81f0ed9d docs(frontend): rename the TFHE-rs feature 2024-09-30 09:44:36 +01:00
Bourgerie Quentin
11bf8d9066 fix(frontend-python): Fixing default circuit name in tfhe-rs bridge 2024-09-26 10:43:06 +02:00
Bourgerie Quentin
ccabaaf8f5 chore(frontend-python): Formatting 2024-09-26 10:43:06 +02:00
youben11
1ecaa5b033 test(frontend): test TFHE-rs example 2024-09-26 10:43:06 +02:00
youben11
1e08d11e17 docs(frontend): TFHE-rs compatibility guide v1 2024-09-26 10:43:06 +02:00
Benoit Chevallier-Mames
64c5953a99 feat(frontend-python): adding jupyter tests
and fixing some broken jupyter notebooks
2024-09-24 09:35:58 +02:00
Benoit Chevallier-Mames
b4b11314cd docs(frontend): adding a use-case for private information retrieval 2024-09-23 15:59:37 +02:00
Umut
cc7830186f feat(frontend): refactor game of life example, test and benchmark it 2024-09-18 11:12:10 +03:00
Umut
532000f8be feat(frontend): refactor levenshtein distance example, test and benchmark it 2024-09-05 16:12:04 +03:00
Umut
d3c5d64c54 feat(frontend): refactor key value database example to use modules, test and benchmark it 2024-09-05 16:12:04 +03:00
Benoit Chevallier-Mames
8477f95dc3 feat(ci): update ruff 2024-09-05 13:18:42 +02:00
Alexandre Péré
e675a75285 feat(frontend): wire tracing 2024-09-02 10:50:27 +02:00
aquint-zama
12d79cc0de docs(frontend): add Inventory Matching System tutorial 2024-08-26 14:45:43 +02:00
Benoit Chevallier-Mames
956a3df9e4 docs(frontend): adding a use-case for fuzzy encrypted name comparison 2024-08-21 10:10:08 +02:00
Benoit Chevallier-Mames
38dd2f73b3 docs(compiler): adding a tutorial with floats
closes https://github.com/zama-ai/concrete-internal/issues/744
2024-08-08 16:44:40 +02:00
Umut
a3cc2f144a fix(frontend): use proper inputsets in key value database example 2024-08-06 12:15:50 +03:00
Benoit Chevallier-Mames
69ee148d97 fix(frontend): fixing an issue in the string generation
closes #819
2024-07-30 16:41:03 +02:00
Benoit Chevallier-Mames
b98ad39478 docs(frontend): moving tutorials in the same directory 2024-07-30 12:08:36 +02:00
rudy
0379f9a656 fix(frontend-python): fhe.function use staticmethod, disable linter for levenshtein example 2024-07-29 09:45:52 +02:00
Benoit Chevallier-Mames
6e0441ac6d fix(ci): fixing some recent mypy, format and ruff issues 2024-07-23 10:27:28 +02:00
Benoit Chevallier-Mames
aadc3a6929 docs(frontend): adding a levelled case for XOR distance between one encrypted and one clear vectors 2024-07-17 11:40:45 +02:00
Benoit Chevallier-Mames
92ee970a28 docs(frontend): adding a use-case for Levenshtein distance
closes #https://github.com/zama-ai/concrete-internal/issues/750
2024-07-17 11:36:41 +02:00
Umut
4268251152 refactor(frontend): improve sha1 example 2024-07-17 11:26:53 +02:00
Umut
2c9455a2e6 feat(frontend-python): fix key value database example 2024-06-25 15:46:25 +03:00
Benoit Chevallier-Mames
16a0c6db99 fix(frontend): fixing pylint for SHA1 example
closes #https://github.com/zama-ai/concrete-internal/issues/727
2024-06-06 15:22:45 +03:00
Benoit Chevallier-Mames
226ee27f64 docs(frontend): adding a SHA1 tutorial with modules 2024-05-31 16:41:24 +02:00
aquint-zama
3740d38481 chore(frontend-python): update black dev dependency 2024-05-22 17:13:54 +02:00
Benoit Chevallier-Mames
46f92ec6ec chore(frontend): clarify XOR-distance example. 2024-04-18 19:14:38 +02:00
Benoit Chevallier-Mames
705fd02d97 docs(compiler): fix a typo 2024-04-18 14:51:33 +02:00
Yuxi Zhao
a0195cf315 docs(frontend): update new structure and landing page 2024-03-11 18:55:50 +01:00
Benoit Chevallier-Mames
68cada3963 docs(frontend): add a tutorial about XOR distance 2024-03-04 16:14:14 +01:00
Benoit Chevallier-Mames
c952d7b1f7 chore(frontend): using fhe.bits() feature in Game of Life example 2024-01-08 09:14:17 +01:00
Umut
bac468a968 refactor(frontend/python): improve basic implementation of game of life example 2023-11-20 10:35:55 +03:00
Umut
62923d27f9 chore(frontend-python): fix pylint issues 2023-11-16 14:04:54 +03:00
Alexandre Péré
e8ef48ffd8 feat(compiler): introduce concrete-protocol
This commit:
 + Adds support for a protocol which enables inter-op between concrete,
   tfhe-rs and potentially other contributors to the fhe ecosystem.
 + Gets rid of hand-made serialization in the compiler, and
   client/server libs.
 + Refactors client/server libs to allow more pre/post processing of
   circuit inputs/outputs.

The protocol is supported by a definition in the shape of a capnp file,
which defines different types of objects among which:
 + ProgramInfo object, which is a precise description of a set of fhe
   circuit coming from the same compilation (understand function type
   information), and the associated key set.
 + *Key objects, which represent secret/public keys used to
   encrypt/execute fhe circuits.
 + Value object, which represent values that can be transferred between
   client and server to support calls to fhe circuits.

The hand-rolled serialization that was previously used is completely
dropped in favor of capnp in the whole codebase.

The client/server libs, are refactored to introduce a modular design for
pre-post processing. Reading the ProgramInfo file associated with a
compilation, the client and server libs assemble a pipeline of
transformers (functions) for pre and post processing of values coming in
and out of a circuit. This design properly decouples various aspects of
the processing, and allows these capabilities to be safely extended.

In practice this commit includes the following:
 + Defines the specification in a concreteprotocol package
 + Integrate the compilation of this package as a compiler dependency
   via cmake
 + Modify the compiler to use the Encodings objects defined in the
   protocol
 + Modify the compiler to emit ProgramInfo files as compilation
   artifact, and gets rid of the bloated ClientParameters.
 + Introduces a new Common library containing the functionalities shared
   between the compiler and the client/server libs.
 + Introduces a functional pre-post processing pipeline to this common
   library
 + Modify the client/server libs to support loading ProgramInfo objects,
   and calling circuits using Value messages.
 + Drops support of JIT.
 + Drops support of C-api.
 + Drops support of Rust bindings.

Co-authored-by: Nikita Frolov <nf@mkmks.org>
2023-11-09 17:09:04 +01:00
Umut
88f06aa036 fix(frontend-python): hint some values within circuits to avoid bad bit-width assignment due to incomplete inputset 2023-10-25 13:39:43 +02:00
Benoit Chevallier-Mames
af63e900cf docs(frontend): adding a Game of Life example
closes #457
2023-09-26 12:48:38 +02:00
Umut
82ab395f71 fix: use correct type annotations in dynamic key-value database example 2023-03-20 13:02:22 +01:00
Umut
4e7cbac264 refactor: concrete-numpy to concrete-python 2023-03-17 13:29:21 +01:00
Quentin Bourgerie
ce7eddc22d chore: Move to the mono repo layout 2023-03-08 11:23:21 +01:00