mplang-nightly 0.1.dev158__py3-none-any.whl → 0.1.dev268__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mplang/__init__.py +21 -45
- mplang/py.typed +13 -0
- mplang/v1/__init__.py +157 -0
- mplang/v1/_device.py +602 -0
- mplang/{analysis → v1/analysis}/__init__.py +1 -1
- mplang/{analysis → v1/analysis}/diagram.py +5 -7
- mplang/v1/core/__init__.py +157 -0
- mplang/{core → v1/core}/cluster.py +30 -14
- mplang/{core → v1/core}/comm.py +5 -1
- mplang/{core → v1/core}/context_mgr.py +1 -1
- mplang/{core/dtype.py → v1/core/dtypes.py} +44 -2
- mplang/{core → v1/core}/expr/__init__.py +7 -7
- mplang/{core → v1/core}/expr/ast.py +13 -14
- mplang/{core → v1/core}/expr/evaluator.py +65 -24
- mplang/{core → v1/core}/expr/printer.py +24 -18
- mplang/{core → v1/core}/expr/transformer.py +3 -3
- mplang/{core → v1/core}/expr/utils.py +2 -2
- mplang/{core → v1/core}/expr/visitor.py +1 -1
- mplang/{core → v1/core}/expr/walk.py +1 -1
- mplang/{core → v1/core}/interp.py +6 -6
- mplang/{core → v1/core}/mpir.py +23 -16
- mplang/{core → v1/core}/mpobject.py +6 -6
- mplang/{core → v1/core}/mptype.py +13 -10
- mplang/{core → v1/core}/pfunc.py +4 -4
- mplang/{core → v1/core}/primitive.py +106 -201
- mplang/{core → v1/core}/table.py +36 -8
- mplang/{core → v1/core}/tensor.py +1 -1
- mplang/{core → v1/core}/tracer.py +9 -9
- mplang/{api.py → v1/host.py} +38 -6
- mplang/v1/kernels/__init__.py +41 -0
- mplang/{kernels → v1/kernels}/base.py +1 -1
- mplang/v1/kernels/basic.py +240 -0
- mplang/{kernels → v1/kernels}/context.py +42 -27
- mplang/{kernels → v1/kernels}/crypto.py +44 -37
- mplang/v1/kernels/fhe.py +858 -0
- mplang/{kernels → v1/kernels}/mock_tee.py +12 -13
- mplang/{kernels → v1/kernels}/phe.py +263 -57
- mplang/{kernels → v1/kernels}/spu.py +137 -48
- mplang/{kernels → v1/kernels}/sql_duckdb.py +12 -15
- mplang/{kernels → v1/kernels}/stablehlo.py +30 -23
- mplang/v1/kernels/value.py +626 -0
- mplang/{ops → v1/ops}/__init__.py +5 -16
- mplang/{ops → v1/ops}/base.py +2 -5
- mplang/{ops/builtin.py → v1/ops/basic.py} +34 -26
- mplang/v1/ops/crypto.py +262 -0
- mplang/v1/ops/fhe.py +272 -0
- mplang/{ops → v1/ops}/jax_cc.py +33 -68
- mplang/v1/ops/nnx_cc.py +168 -0
- mplang/{ops → v1/ops}/phe.py +16 -4
- mplang/{ops → v1/ops}/spu.py +3 -5
- mplang/v1/ops/sql_cc.py +303 -0
- mplang/{ops → v1/ops}/tee.py +9 -24
- mplang/{protos → v1/protos}/v1alpha1/mpir_pb2.pyi +71 -21
- mplang/v1/protos/v1alpha1/value_pb2.py +34 -0
- mplang/v1/protos/v1alpha1/value_pb2.pyi +169 -0
- mplang/{runtime → v1/runtime}/__init__.py +2 -2
- mplang/v1/runtime/channel.py +230 -0
- mplang/{runtime → v1/runtime}/cli.py +35 -20
- mplang/{runtime → v1/runtime}/client.py +19 -8
- mplang/{runtime → v1/runtime}/communicator.py +59 -15
- mplang/{runtime → v1/runtime}/data_providers.py +80 -19
- mplang/{runtime → v1/runtime}/driver.py +30 -12
- mplang/v1/runtime/link_comm.py +196 -0
- mplang/{runtime → v1/runtime}/server.py +58 -42
- mplang/{runtime → v1/runtime}/session.py +57 -71
- mplang/{runtime → v1/runtime}/simulation.py +55 -28
- mplang/v1/simp/api.py +353 -0
- mplang/{simp → v1/simp}/mpi.py +8 -9
- mplang/{simp/__init__.py → v1/simp/party.py} +19 -145
- mplang/{simp → v1/simp}/random.py +21 -22
- mplang/v1/simp/smpc.py +238 -0
- mplang/v1/utils/table_utils.py +185 -0
- mplang/v2/__init__.py +424 -0
- mplang/v2/backends/__init__.py +57 -0
- mplang/v2/backends/bfv_impl.py +705 -0
- mplang/v2/backends/channel.py +217 -0
- mplang/v2/backends/crypto_impl.py +723 -0
- mplang/v2/backends/field_impl.py +454 -0
- mplang/v2/backends/func_impl.py +107 -0
- mplang/v2/backends/phe_impl.py +148 -0
- mplang/v2/backends/simp_design.md +136 -0
- mplang/v2/backends/simp_driver/__init__.py +41 -0
- mplang/v2/backends/simp_driver/http.py +168 -0
- mplang/v2/backends/simp_driver/mem.py +280 -0
- mplang/v2/backends/simp_driver/ops.py +135 -0
- mplang/v2/backends/simp_driver/state.py +60 -0
- mplang/v2/backends/simp_driver/values.py +52 -0
- mplang/v2/backends/simp_worker/__init__.py +29 -0
- mplang/v2/backends/simp_worker/http.py +354 -0
- mplang/v2/backends/simp_worker/mem.py +102 -0
- mplang/v2/backends/simp_worker/ops.py +167 -0
- mplang/v2/backends/simp_worker/state.py +49 -0
- mplang/v2/backends/spu_impl.py +275 -0
- mplang/v2/backends/spu_state.py +187 -0
- mplang/v2/backends/store_impl.py +62 -0
- mplang/v2/backends/table_impl.py +838 -0
- mplang/v2/backends/tee_impl.py +215 -0
- mplang/v2/backends/tensor_impl.py +519 -0
- mplang/v2/cli.py +603 -0
- mplang/v2/cli_guide.md +122 -0
- mplang/v2/dialects/__init__.py +36 -0
- mplang/v2/dialects/bfv.py +665 -0
- mplang/v2/dialects/crypto.py +689 -0
- mplang/v2/dialects/dtypes.py +378 -0
- mplang/v2/dialects/field.py +210 -0
- mplang/v2/dialects/func.py +135 -0
- mplang/v2/dialects/phe.py +723 -0
- mplang/v2/dialects/simp.py +944 -0
- mplang/v2/dialects/spu.py +349 -0
- mplang/v2/dialects/store.py +63 -0
- mplang/v2/dialects/table.py +407 -0
- mplang/v2/dialects/tee.py +346 -0
- mplang/v2/dialects/tensor.py +1175 -0
- mplang/v2/edsl/README.md +279 -0
- mplang/v2/edsl/__init__.py +99 -0
- mplang/v2/edsl/context.py +311 -0
- mplang/v2/edsl/graph.py +463 -0
- mplang/v2/edsl/jit.py +62 -0
- mplang/v2/edsl/object.py +53 -0
- mplang/v2/edsl/primitive.py +284 -0
- mplang/v2/edsl/printer.py +119 -0
- mplang/v2/edsl/registry.py +207 -0
- mplang/v2/edsl/serde.py +375 -0
- mplang/v2/edsl/tracer.py +614 -0
- mplang/v2/edsl/typing.py +816 -0
- mplang/v2/kernels/Makefile +30 -0
- mplang/v2/kernels/__init__.py +23 -0
- mplang/v2/kernels/gf128.cpp +148 -0
- mplang/v2/kernels/ldpc.cpp +82 -0
- mplang/v2/kernels/okvs.cpp +283 -0
- mplang/v2/kernels/okvs_opt.cpp +291 -0
- mplang/v2/kernels/py_kernels.py +398 -0
- mplang/v2/libs/collective.py +330 -0
- mplang/v2/libs/device/__init__.py +51 -0
- mplang/v2/libs/device/api.py +813 -0
- mplang/v2/libs/device/cluster.py +352 -0
- mplang/v2/libs/ml/__init__.py +23 -0
- mplang/v2/libs/ml/sgb.py +1861 -0
- mplang/v2/libs/mpc/__init__.py +41 -0
- mplang/v2/libs/mpc/_utils.py +99 -0
- mplang/v2/libs/mpc/analytics/__init__.py +35 -0
- mplang/v2/libs/mpc/analytics/aggregation.py +372 -0
- mplang/v2/libs/mpc/analytics/groupby.md +99 -0
- mplang/v2/libs/mpc/analytics/groupby.py +331 -0
- mplang/v2/libs/mpc/analytics/permutation.py +386 -0
- mplang/v2/libs/mpc/common/constants.py +39 -0
- mplang/v2/libs/mpc/ot/__init__.py +32 -0
- mplang/v2/libs/mpc/ot/base.py +222 -0
- mplang/v2/libs/mpc/ot/extension.py +477 -0
- mplang/v2/libs/mpc/ot/silent.py +217 -0
- mplang/v2/libs/mpc/psi/__init__.py +40 -0
- mplang/v2/libs/mpc/psi/cuckoo.py +228 -0
- mplang/v2/libs/mpc/psi/okvs.py +49 -0
- mplang/v2/libs/mpc/psi/okvs_gct.py +79 -0
- mplang/v2/libs/mpc/psi/oprf.py +310 -0
- mplang/v2/libs/mpc/psi/rr22.py +344 -0
- mplang/v2/libs/mpc/psi/unbalanced.py +200 -0
- mplang/v2/libs/mpc/vole/__init__.py +31 -0
- mplang/v2/libs/mpc/vole/gilboa.py +327 -0
- mplang/v2/libs/mpc/vole/ldpc.py +383 -0
- mplang/v2/libs/mpc/vole/silver.py +336 -0
- mplang/v2/runtime/__init__.py +15 -0
- mplang/v2/runtime/dialect_state.py +41 -0
- mplang/v2/runtime/interpreter.py +871 -0
- mplang/v2/runtime/object_store.py +194 -0
- mplang/v2/runtime/value.py +141 -0
- {mplang_nightly-0.1.dev158.dist-info → mplang_nightly-0.1.dev268.dist-info}/METADATA +24 -17
- mplang_nightly-0.1.dev268.dist-info/RECORD +180 -0
- {mplang_nightly-0.1.dev158.dist-info → mplang_nightly-0.1.dev268.dist-info}/WHEEL +1 -1
- mplang/core/__init__.py +0 -92
- mplang/device.py +0 -340
- mplang/kernels/builtin.py +0 -207
- mplang/ops/crypto.py +0 -109
- mplang/ops/ibis_cc.py +0 -139
- mplang/ops/sql.py +0 -61
- mplang/protos/v1alpha1/mpir_pb2_grpc.py +0 -3
- mplang/runtime/link_comm.py +0 -131
- mplang/simp/smpc.py +0 -201
- mplang/utils/table_utils.py +0 -73
- mplang_nightly-0.1.dev158.dist-info/RECORD +0 -77
- /mplang/{core → v1/core}/mask.py +0 -0
- /mplang/{protos → v1/protos}/v1alpha1/mpir_pb2.py +0 -0
- /mplang/{runtime → v1/runtime}/exceptions.py +0 -0
- /mplang/{runtime → v1/runtime}/http_api.md +0 -0
- /mplang/{kernels → v1/simp}/__init__.py +0 -0
- /mplang/{utils → v1/utils}/__init__.py +0 -0
- /mplang/{utils → v1/utils}/crypto.py +0 -0
- /mplang/{utils → v1/utils}/func_utils.py +0 -0
- /mplang/{utils → v1/utils}/spu_utils.py +0 -0
- {mplang_nightly-0.1.dev158.dist-info → mplang_nightly-0.1.dev268.dist-info}/entry_points.txt +0 -0
- {mplang_nightly-0.1.dev158.dist-info → mplang_nightly-0.1.dev268.dist-info}/licenses/LICENSE +0 -0
mplang/__init__.py
CHANGED
|
@@ -12,7 +12,20 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
"""Multi-Party Programming Language for Secure Computation.
|
|
15
|
+
"""Multi-Party Programming Language for Secure Computation.
|
|
16
|
+
|
|
17
|
+
This module provides access to both v1 and v2 APIs:
|
|
18
|
+
|
|
19
|
+
# Use v1 (current default, will be deprecated)
|
|
20
|
+
import mplang as mp
|
|
21
|
+
# or explicitly:
|
|
22
|
+
import mplang.v1 as mp
|
|
23
|
+
|
|
24
|
+
# Use v2 (recommended for new code)
|
|
25
|
+
import mplang.v2 as mp
|
|
26
|
+
|
|
27
|
+
v1 API will be deprecated in a future release. Please migrate to v2.
|
|
28
|
+
"""
|
|
16
29
|
|
|
17
30
|
# Version is managed by hatch-vcs and available after package installation
|
|
18
31
|
try:
|
|
@@ -23,48 +36,11 @@ except PackageNotFoundError:
|
|
|
23
36
|
# Fallback for development/editable installs when package is not installed
|
|
24
37
|
__version__ = "0.0.0-dev"
|
|
25
38
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
InterpContext,
|
|
31
|
-
Mask,
|
|
32
|
-
MPContext,
|
|
33
|
-
MPObject,
|
|
34
|
-
MPType,
|
|
35
|
-
TableType,
|
|
36
|
-
TensorType,
|
|
37
|
-
function,
|
|
38
|
-
)
|
|
39
|
-
from mplang.core.cluster import ClusterSpec, Device, Node, RuntimeInfo
|
|
40
|
-
from mplang.core.context_mgr import cur_ctx, set_ctx, with_ctx
|
|
41
|
-
from mplang.runtime.driver import Driver
|
|
42
|
-
from mplang.runtime.simulation import Simulator
|
|
39
|
+
# =============================================================================
|
|
40
|
+
# Default: Re-export v1 API for backward compatibility
|
|
41
|
+
# =============================================================================
|
|
42
|
+
# This will be changed to v2 in a future release
|
|
43
43
|
|
|
44
|
-
#
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"CompileOptions",
|
|
48
|
-
"DType",
|
|
49
|
-
"Device",
|
|
50
|
-
"Driver",
|
|
51
|
-
"InterpContext",
|
|
52
|
-
"MPContext",
|
|
53
|
-
"MPObject",
|
|
54
|
-
"MPType",
|
|
55
|
-
"Mask",
|
|
56
|
-
"Node",
|
|
57
|
-
"RuntimeInfo",
|
|
58
|
-
"Simulator",
|
|
59
|
-
"TableType",
|
|
60
|
-
"TensorType",
|
|
61
|
-
"__version__",
|
|
62
|
-
"analysis",
|
|
63
|
-
"compile",
|
|
64
|
-
"cur_ctx",
|
|
65
|
-
"evaluate",
|
|
66
|
-
"fetch",
|
|
67
|
-
"function",
|
|
68
|
-
"set_ctx",
|
|
69
|
-
"with_ctx",
|
|
70
|
-
]
|
|
44
|
+
# Make v1 and v2 subpackages directly accessible
|
|
45
|
+
from mplang import v1, v2 # noqa: F401
|
|
46
|
+
from mplang.v1 import * # noqa: F403
|
mplang/py.typed
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Copyright 2026 Ant Group Co., Ltd.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
mplang/v1/__init__.py
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Copyright 2025 Ant Group Co., Ltd.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""Multi-Party Programming Language for Secure Computation."""
|
|
16
|
+
|
|
17
|
+
# Version is managed by hatch-vcs and available after package installation
|
|
18
|
+
try:
|
|
19
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
20
|
+
|
|
21
|
+
__version__ = version("mplang")
|
|
22
|
+
except PackageNotFoundError:
|
|
23
|
+
# Fallback for development/editable installs when package is not installed
|
|
24
|
+
__version__ = "0.0.0-dev"
|
|
25
|
+
|
|
26
|
+
from mplang.v1 import analysis
|
|
27
|
+
from mplang.v1._device import device, get_dev_attr, is_device_obj, put, set_dev_attr
|
|
28
|
+
from mplang.v1.core import (
|
|
29
|
+
ClusterSpec,
|
|
30
|
+
Device,
|
|
31
|
+
DType,
|
|
32
|
+
InterpContext,
|
|
33
|
+
IrReader,
|
|
34
|
+
IrWriter,
|
|
35
|
+
Mask,
|
|
36
|
+
MPContext,
|
|
37
|
+
MPObject,
|
|
38
|
+
MPType,
|
|
39
|
+
Node,
|
|
40
|
+
Rank,
|
|
41
|
+
RuntimeInfo,
|
|
42
|
+
Shape,
|
|
43
|
+
TableType,
|
|
44
|
+
TensorType,
|
|
45
|
+
TraceContext,
|
|
46
|
+
TracedFunction,
|
|
47
|
+
cur_ctx,
|
|
48
|
+
function,
|
|
49
|
+
pconv,
|
|
50
|
+
peval,
|
|
51
|
+
pshfl,
|
|
52
|
+
pshfl_s,
|
|
53
|
+
set_ctx,
|
|
54
|
+
trace,
|
|
55
|
+
uniform_cond,
|
|
56
|
+
while_loop,
|
|
57
|
+
with_ctx,
|
|
58
|
+
)
|
|
59
|
+
from mplang.v1.host import CompileOptions, compile, evaluate, fetch
|
|
60
|
+
from mplang.v1.runtime.driver import Driver
|
|
61
|
+
from mplang.v1.runtime.simulation import Simulator
|
|
62
|
+
from mplang.v1.simp.api import (
|
|
63
|
+
constant,
|
|
64
|
+
debug_print,
|
|
65
|
+
prand,
|
|
66
|
+
prank,
|
|
67
|
+
run,
|
|
68
|
+
run_at,
|
|
69
|
+
run_jax,
|
|
70
|
+
run_jax_at,
|
|
71
|
+
run_sql,
|
|
72
|
+
run_sql_at,
|
|
73
|
+
set_mask,
|
|
74
|
+
)
|
|
75
|
+
from mplang.v1.simp.mpi import allgather_m, bcast_m, gather_m, p2p, scatter_m
|
|
76
|
+
from mplang.v1.simp.party import P0, P1, P2, P2P, P, Party, load_module
|
|
77
|
+
from mplang.v1.simp.random import key_split, pperm, prandint, ukey, urandint
|
|
78
|
+
from mplang.v1.simp.smpc import reveal, reveal_to, seal, seal_from, srun_jax
|
|
79
|
+
|
|
80
|
+
# Public API
|
|
81
|
+
__all__ = [
|
|
82
|
+
"P0",
|
|
83
|
+
"P1",
|
|
84
|
+
"P2",
|
|
85
|
+
"P2P",
|
|
86
|
+
"ClusterSpec",
|
|
87
|
+
"CompileOptions",
|
|
88
|
+
"DType",
|
|
89
|
+
"Device",
|
|
90
|
+
"Driver",
|
|
91
|
+
"InterpContext",
|
|
92
|
+
"IrReader",
|
|
93
|
+
"IrWriter",
|
|
94
|
+
"MPContext",
|
|
95
|
+
"MPObject",
|
|
96
|
+
"MPType",
|
|
97
|
+
"Mask",
|
|
98
|
+
"Node",
|
|
99
|
+
"P",
|
|
100
|
+
"Party",
|
|
101
|
+
"Rank",
|
|
102
|
+
"RuntimeInfo",
|
|
103
|
+
"Shape",
|
|
104
|
+
"Simulator",
|
|
105
|
+
"TableType",
|
|
106
|
+
"TensorType",
|
|
107
|
+
"TraceContext",
|
|
108
|
+
"TracedFunction",
|
|
109
|
+
"__version__",
|
|
110
|
+
"allgather_m",
|
|
111
|
+
"analysis",
|
|
112
|
+
"bcast_m",
|
|
113
|
+
"compile",
|
|
114
|
+
"constant",
|
|
115
|
+
"cur_ctx",
|
|
116
|
+
"debug_print",
|
|
117
|
+
"device",
|
|
118
|
+
"evaluate",
|
|
119
|
+
"fetch",
|
|
120
|
+
"function",
|
|
121
|
+
"gather_m",
|
|
122
|
+
"get_dev_attr",
|
|
123
|
+
"is_device_obj",
|
|
124
|
+
"key_split",
|
|
125
|
+
"load_module",
|
|
126
|
+
"p2p",
|
|
127
|
+
"pconv",
|
|
128
|
+
"peval",
|
|
129
|
+
"pperm",
|
|
130
|
+
"prand",
|
|
131
|
+
"prandint",
|
|
132
|
+
"prank",
|
|
133
|
+
"pshfl",
|
|
134
|
+
"pshfl_s",
|
|
135
|
+
"put",
|
|
136
|
+
"reveal",
|
|
137
|
+
"reveal_to",
|
|
138
|
+
"run",
|
|
139
|
+
"run_at",
|
|
140
|
+
"run_jax",
|
|
141
|
+
"run_jax_at",
|
|
142
|
+
"run_sql",
|
|
143
|
+
"run_sql_at",
|
|
144
|
+
"scatter_m",
|
|
145
|
+
"seal",
|
|
146
|
+
"seal_from",
|
|
147
|
+
"set_ctx",
|
|
148
|
+
"set_dev_attr",
|
|
149
|
+
"set_mask",
|
|
150
|
+
"srun_jax",
|
|
151
|
+
"trace",
|
|
152
|
+
"ukey",
|
|
153
|
+
"uniform_cond",
|
|
154
|
+
"urandint",
|
|
155
|
+
"while_loop",
|
|
156
|
+
"with_ctx",
|
|
157
|
+
]
|