Skip to main content

kimchi_napi/
lib.rs

1mod build_info;
2mod circuit;
3mod gate_vector;
4mod oracles;
5mod pasta_fp_plonk_index;
6mod pasta_fq_plonk_index;
7mod plonk_verifier_index;
8mod poly_comm;
9mod poseidon;
10mod proof;
11mod srs;
12mod tables;
13mod vector;
14mod wrappers;
15
16pub use build_info::{get_native_calls, ARCH_NAME, BACKING, OS_NAME};
17
18pub use circuit::prover_to_json;
19pub use gate_vector::{
20    caml_pasta_fp_plonk_circuit_serialize, caml_pasta_fp_plonk_gate_vector_add,
21    caml_pasta_fp_plonk_gate_vector_create, caml_pasta_fp_plonk_gate_vector_digest,
22    caml_pasta_fp_plonk_gate_vector_from_bytes,
23    caml_pasta_fp_plonk_gate_vector_from_bytes_external, caml_pasta_fp_plonk_gate_vector_get,
24    caml_pasta_fp_plonk_gate_vector_len, caml_pasta_fp_plonk_gate_vector_to_bytes,
25    caml_pasta_fp_plonk_gate_vector_wrap, caml_pasta_fq_plonk_circuit_serialize,
26    caml_pasta_fq_plonk_gate_vector_add, caml_pasta_fq_plonk_gate_vector_create,
27    caml_pasta_fq_plonk_gate_vector_digest, caml_pasta_fq_plonk_gate_vector_from_bytes,
28    caml_pasta_fq_plonk_gate_vector_from_bytes_external, caml_pasta_fq_plonk_gate_vector_get,
29    caml_pasta_fq_plonk_gate_vector_len, caml_pasta_fq_plonk_gate_vector_to_bytes,
30    caml_pasta_fq_plonk_gate_vector_wrap, NapiFpGate as WasmFpGate,
31    NapiFpGateVector as WasmFpGateVector, NapiFqGate as WasmFqGate,
32    NapiFqGateVector as WasmFqGateVector,
33};
34pub use oracles::{
35    fp::{fp_oracles_create, fp_oracles_deep_copy, fp_oracles_dummy},
36    fq::{fq_oracles_create, fq_oracles_deep_copy, fq_oracles_dummy},
37};
38pub use pasta_fp_plonk_index::{
39    caml_pasta_fp_plonk_index_create, caml_pasta_fp_plonk_index_decode,
40    caml_pasta_fp_plonk_index_domain_d1_size, caml_pasta_fp_plonk_index_domain_d4_size,
41    caml_pasta_fp_plonk_index_domain_d8_size, caml_pasta_fp_plonk_index_encode,
42    caml_pasta_fp_plonk_index_max_degree, caml_pasta_fp_plonk_index_public_inputs,
43    caml_pasta_fp_plonk_index_read, caml_pasta_fp_plonk_index_write, prover_index_fp_deserialize,
44    prover_index_fp_serialize, WasmPastaFpPlonkIndex,
45};
46pub use pasta_fq_plonk_index::{
47    caml_pasta_fq_plonk_index_create, caml_pasta_fq_plonk_index_decode,
48    caml_pasta_fq_plonk_index_domain_d1_size, caml_pasta_fq_plonk_index_domain_d4_size,
49    caml_pasta_fq_plonk_index_domain_d8_size, caml_pasta_fq_plonk_index_encode,
50    caml_pasta_fq_plonk_index_max_degree, caml_pasta_fq_plonk_index_public_inputs,
51    caml_pasta_fq_plonk_index_read, caml_pasta_fq_plonk_index_write, prover_index_fq_deserialize,
52    prover_index_fq_serialize, WasmPastaFqPlonkIndex,
53};
54pub use plonk_verifier_index::{
55    fp::{
56        caml_pasta_fp_plonk_verifier_index_create, caml_pasta_fp_plonk_verifier_index_deep_copy,
57        caml_pasta_fp_plonk_verifier_index_deserialize, caml_pasta_fp_plonk_verifier_index_dummy,
58        caml_pasta_fp_plonk_verifier_index_read, caml_pasta_fp_plonk_verifier_index_serialize,
59        caml_pasta_fp_plonk_verifier_index_shifts, caml_pasta_fp_plonk_verifier_index_write,
60        NapiFpLookupVerifierIndex, NapiFpPlonkVerifierIndex,
61    },
62    fq::{
63        caml_pasta_fq_plonk_verifier_index_create, caml_pasta_fq_plonk_verifier_index_deep_copy,
64        caml_pasta_fq_plonk_verifier_index_deserialize, caml_pasta_fq_plonk_verifier_index_dummy,
65        caml_pasta_fq_plonk_verifier_index_read, caml_pasta_fq_plonk_verifier_index_serialize,
66        caml_pasta_fq_plonk_verifier_index_shifts, caml_pasta_fq_plonk_verifier_index_write,
67        NapiFqLookupVerifierIndex, NapiFqPlonkVerifierIndex,
68    },
69};
70
71pub use poly_comm::{
72    pallas::NapiFqPolyComm as WasmFqPolyComm, vesta::NapiFpPolyComm as WasmFpPolyComm,
73};
74pub use poseidon::{caml_pasta_fp_poseidon_block_cipher, caml_pasta_fq_poseidon_block_cipher};
75pub use proof::{
76    fp::{
77        caml_pasta_fp_plonk_proof_batch_verify, caml_pasta_fp_plonk_proof_create,
78        caml_pasta_fp_plonk_proof_deep_copy, caml_pasta_fp_plonk_proof_dummy,
79        caml_pasta_fp_plonk_proof_verify, NapiFpLookupCommitments, NapiFpOpeningProof,
80        NapiFpProofEvaluations, NapiFpProverCommitments, NapiFpProverProof,
81    },
82    fq::{
83        caml_pasta_fq_plonk_proof_batch_verify, caml_pasta_fq_plonk_proof_create,
84        caml_pasta_fq_plonk_proof_deep_copy, caml_pasta_fq_plonk_proof_dummy,
85        caml_pasta_fq_plonk_proof_verify, NapiFqLookupCommitments, NapiFqOpeningProof,
86        NapiFqProofEvaluations, NapiFqProverCommitments, NapiFqProverProof,
87    },
88};
89pub use srs::{
90    caml_fp_srs_from_bytes, caml_fp_srs_to_bytes, caml_fq_srs_from_bytes, caml_fq_srs_to_bytes,
91    fp::NapiFpSrs as WasmFpSrs, fq::NapiFqSrs as WasmFqSrs, *,
92};
93pub use tables::{JsLookupTableFp, JsLookupTableFq, JsRuntimeTableCfgFp, JsRuntimeTableCfgFq};
94pub use vector::{
95    fp::NapiVecVecFp as WasmVecVecFp, fq::NapiVecVecFq as WasmVecVecFq,
96    NapiFlatVector as WasmFlatVector,
97};
98pub use wrappers::{
99    field::{NapiPastaFp as WasmPastaFp, NapiPastaFq as WasmPastaFq},
100    group::{NapiGPallas as WasmGPallas, NapiGVesta as WasmGVesta},
101    lookups::{NapiFpRuntimeTable, NapiFqRuntimeTable},
102};