1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[]
= "gsm_map"
= "1.0.0"
= "2021"
= "1.80"
= "GSM MAP (Mobile Application Part) operations per 3GPP TS 29.002 — SMS (MO/MT-ForwardSM, SRI-for-SM), mobility, authentication, USSD, supplementary services — as BER-codable ASN.1 types, with optional Rust-backed Python bindings"
= ["Real Time Telecom B.V."]
= "MIT"
= "README.md"
= "https://github.com/Real-Time-Telecom-B-V/gsm_map"
= "https://github.com/Real-Time-Telecom-B-V/gsm_map"
= ["gsm", "map", "ss7", "3gpp", "sms"]
= ["network-programming"]
# Keep CI/build scaffolding out of the crates.io package. `python/` (the wheel's
# pure-Python shim) and `pyproject.toml` ship harmlessly, but the dev-only test
# suite under `python/tests/`, the docs, and the perf rig do not.
= [".github/", "docs/", "scripts/", "python/tests/"]
# cdylib → maturin/PyO3 build the loadable extension module (the wheel).
# rlib → crates.io consumers link this; the cdylib is inert for them.
# Building both is the standard PyO3 mixed-layout setup (pydantic-core, orjson).
[]
= ["cdylib", "rlib"]
[]
= "0.28"
= "0.4"
= "2"
= "1"
# Optional Python bindings (feature = "python"). Kept out of the default build so
# `cargo add gsm_map` and crates.io consumers pull ZERO pyo3. pyo3 >= 0.28 defaults
# modules to `gil_used = false`, so the extension loads on free-threaded ("no-GIL")
# CPython without re-enabling the GIL. abi3-py39 → one forward-compatible wheel for
# regular CPython 3.9+ (free-threaded wheels are built version-specific instead).
= { = "0.29", = true, = ["abi3-py39"] }
[]
= []
# Links libpython; enables the bindings. Used by `cargo {test,clippy} --features python`.
= ["dep:pyo3"]
# Wheel-only: maturin sets this. `pyo3/extension-module` tells pyo3 NOT to link
# libpython, which breaks a Rust test binary — so this is NEVER enabled by
# `cargo test`/`cargo clippy` (and CI must not use `--all-features`).
= ["python", "pyo3/extension-module"]
[]
# criterion drives the codec + full-stack integration benchmarks.
= "0.8"
# The integration benchmark assembles a realistic SS7 stack: it wraps the MAP
# operation in a TCAP Invoke/Begin and then an SCCP UDT. `tcap` is already a
# runtime dep; `sccp` is a sibling crate consumed here only for the bench.
= "1"
[[]]
= "codec"
= false
[[]]
= "integration"
= false
[]
= { = "deny", = -1 }