spec256k1 0.1.0__tar.gz

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.
@@ -0,0 +1,276 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+ tags:
9
+ - '*'
10
+ pull_request:
11
+ workflow_dispatch:
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ linux:
18
+ runs-on: ${{ matrix.platform.runner }}
19
+ strategy:
20
+ matrix:
21
+ platform:
22
+ - runner: ubuntu-22.04
23
+ target: x86_64
24
+ - runner: ubuntu-22.04
25
+ target: x86
26
+ - runner: ubuntu-22.04
27
+ target: aarch64
28
+ - runner: ubuntu-22.04
29
+ target: armv7
30
+ - runner: ubuntu-22.04
31
+ target: s390x
32
+ - runner: ubuntu-22.04
33
+ target: ppc64le
34
+ steps:
35
+ - uses: actions/checkout@v6
36
+ - uses: actions/setup-python@v6
37
+ with:
38
+ python-version: |
39
+ 3.11
40
+ 3.12
41
+ 3.13
42
+ 3.14
43
+ - name: Build wheels
44
+ uses: PyO3/maturin-action@v1
45
+ with:
46
+ target: ${{ matrix.platform.target }}
47
+ args: --release --out dist --find-interpreter
48
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
49
+ manylinux: auto
50
+ - name: Upload wheels
51
+ uses: actions/upload-artifact@v6
52
+ with:
53
+ name: wheels-linux-${{ matrix.platform.target }}
54
+ path: dist
55
+
56
+ musllinux:
57
+ runs-on: ${{ matrix.platform.runner }}
58
+ strategy:
59
+ matrix:
60
+ platform:
61
+ - runner: ubuntu-22.04
62
+ target: x86_64
63
+ - runner: ubuntu-22.04
64
+ target: x86
65
+ - runner: ubuntu-22.04
66
+ target: aarch64
67
+ - runner: ubuntu-22.04
68
+ target: armv7
69
+ steps:
70
+ - uses: actions/checkout@v6
71
+ - uses: actions/setup-python@v6
72
+ with:
73
+ python-version: |
74
+ 3.11
75
+ 3.12
76
+ 3.13
77
+ 3.14
78
+ - name: Build wheels
79
+ uses: PyO3/maturin-action@v1
80
+ with:
81
+ target: ${{ matrix.platform.target }}
82
+ args: --release --out dist --find-interpreter
83
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
84
+ manylinux: musllinux_1_2
85
+ - name: Upload wheels
86
+ uses: actions/upload-artifact@v6
87
+ with:
88
+ name: wheels-musllinux-${{ matrix.platform.target }}
89
+ path: dist
90
+
91
+ windows:
92
+ runs-on: ${{ matrix.platform.runner }}
93
+ strategy:
94
+ matrix:
95
+ platform:
96
+ - runner: windows-latest
97
+ target: x64
98
+ python_arch: x64
99
+ - runner: windows-latest
100
+ target: x86
101
+ python_arch: x86
102
+ - runner: windows-11-arm
103
+ target: aarch64
104
+ python_arch: arm64
105
+ steps:
106
+ - uses: actions/checkout@v6
107
+ - uses: actions/setup-python@v6
108
+ with:
109
+ python-version: |
110
+ 3.11
111
+ 3.12
112
+ 3.13
113
+ 3.14
114
+ architecture: ${{ matrix.platform.python_arch }}
115
+ - name: Build wheels
116
+ uses: PyO3/maturin-action@v1
117
+ with:
118
+ target: ${{ matrix.platform.target }}
119
+ args: --release --out dist --find-interpreter
120
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
121
+ - name: Upload wheels
122
+ uses: actions/upload-artifact@v6
123
+ with:
124
+ name: wheels-windows-${{ matrix.platform.target }}
125
+ path: dist
126
+
127
+ macos:
128
+ runs-on: ${{ matrix.platform.runner }}
129
+ strategy:
130
+ matrix:
131
+ platform:
132
+ - runner: macos-15-intel
133
+ target: x86_64
134
+ - runner: macos-latest
135
+ target: aarch64
136
+ steps:
137
+ - uses: actions/checkout@v6
138
+ - uses: actions/setup-python@v6
139
+ with:
140
+ python-version: |
141
+ 3.11
142
+ 3.12
143
+ 3.13
144
+ 3.14
145
+ - name: Build wheels
146
+ uses: PyO3/maturin-action@v1
147
+ with:
148
+ target: ${{ matrix.platform.target }}
149
+ args: --release --out dist --find-interpreter
150
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
151
+ - name: Upload wheels
152
+ uses: actions/upload-artifact@v6
153
+ with:
154
+ name: wheels-macos-${{ matrix.platform.target }}
155
+ path: dist
156
+
157
+ # Free-threaded Python 3.14t builds
158
+ linux-freethreaded:
159
+ runs-on: ${{ matrix.platform.runner }}
160
+ strategy:
161
+ matrix:
162
+ platform:
163
+ - runner: ubuntu-22.04
164
+ target: x86_64
165
+ - runner: ubuntu-22.04
166
+ target: aarch64
167
+ steps:
168
+ - uses: actions/checkout@v6
169
+ - uses: actions/setup-python@v6
170
+ with:
171
+ python-version: '3.14t'
172
+ - name: Build wheels
173
+ uses: PyO3/maturin-action@v1
174
+ with:
175
+ target: ${{ matrix.platform.target }}
176
+ args: --release --out dist --find-interpreter
177
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
178
+ manylinux: auto
179
+ - name: Upload wheels
180
+ uses: actions/upload-artifact@v6
181
+ with:
182
+ name: wheels-linux-freethreaded-${{ matrix.platform.target }}
183
+ path: dist
184
+
185
+ windows-freethreaded:
186
+ runs-on: ${{ matrix.platform.runner }}
187
+ strategy:
188
+ matrix:
189
+ platform:
190
+ - runner: windows-latest
191
+ target: x64
192
+ python_arch: x64
193
+ steps:
194
+ - uses: actions/checkout@v6
195
+ - uses: actions/setup-python@v6
196
+ with:
197
+ python-version: '3.14t'
198
+ architecture: ${{ matrix.platform.python_arch }}
199
+ - name: Build wheels
200
+ uses: PyO3/maturin-action@v1
201
+ with:
202
+ target: ${{ matrix.platform.target }}
203
+ args: --release --out dist --find-interpreter
204
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
205
+ - name: Upload wheels
206
+ uses: actions/upload-artifact@v6
207
+ with:
208
+ name: wheels-windows-freethreaded-${{ matrix.platform.target }}
209
+ path: dist
210
+
211
+ macos-freethreaded:
212
+ runs-on: ${{ matrix.platform.runner }}
213
+ strategy:
214
+ matrix:
215
+ platform:
216
+ - runner: macos-15-intel
217
+ target: x86_64
218
+ - runner: macos-latest
219
+ target: aarch64
220
+ steps:
221
+ - uses: actions/checkout@v6
222
+ - uses: actions/setup-python@v6
223
+ with:
224
+ python-version: '3.14t'
225
+ - name: Build wheels
226
+ uses: PyO3/maturin-action@v1
227
+ with:
228
+ target: ${{ matrix.platform.target }}
229
+ args: --release --out dist --find-interpreter
230
+ sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
231
+ - name: Upload wheels
232
+ uses: actions/upload-artifact@v6
233
+ with:
234
+ name: wheels-macos-freethreaded-${{ matrix.platform.target }}
235
+ path: dist
236
+
237
+ sdist:
238
+ runs-on: ubuntu-latest
239
+ steps:
240
+ - uses: actions/checkout@v6
241
+ - name: Build sdist
242
+ uses: PyO3/maturin-action@v1
243
+ with:
244
+ command: sdist
245
+ args: --out dist
246
+ - name: Upload sdist
247
+ uses: actions/upload-artifact@v6
248
+ with:
249
+ name: wheels-sdist
250
+ path: dist
251
+
252
+ release:
253
+ name: Release
254
+ runs-on: ubuntu-latest
255
+ if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
256
+ needs: [linux, musllinux, windows, macos, linux-freethreaded, windows-freethreaded, macos-freethreaded, sdist]
257
+ permissions:
258
+ id-token: write
259
+ contents: write
260
+ # Uncomment when repo is public:
261
+ # attestations: write
262
+ steps:
263
+ - uses: actions/download-artifact@v7
264
+ # Uncomment when repo is public:
265
+ # - name: Generate artifact attestation
266
+ # uses: actions/attest-build-provenance@v3
267
+ # with:
268
+ # subject-path: 'wheels-*/*'
269
+ - name: Install uv
270
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
271
+ uses: astral-sh/setup-uv@v7
272
+ - name: Publish to PyPI
273
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
274
+ run: uv publish 'wheels-*/*'
275
+ env:
276
+ UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,72 @@
1
+ /target
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ .pytest_cache/
6
+ *.py[cod]
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ .venv/
14
+ env/
15
+ bin/
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ include/
26
+ man/
27
+ venv/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # Installer logs
33
+ pip-log.txt
34
+ pip-delete-this-directory.txt
35
+ pip-selfcheck.json
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+
45
+ # Translations
46
+ *.mo
47
+
48
+ # Mr Developer
49
+ .mr.developer.cfg
50
+ .project
51
+ .pydevproject
52
+
53
+ # Rope
54
+ .ropeproject
55
+
56
+ # Django stuff:
57
+ *.log
58
+ *.pot
59
+
60
+ .DS_Store
61
+
62
+ # Sphinx documentation
63
+ docs/_build/
64
+
65
+ # PyCharm
66
+ .idea/
67
+
68
+ # VSCode
69
+ .vscode/
70
+
71
+ # Pyenv
72
+ .python-version
@@ -0,0 +1,172 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.5.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
+
11
+ [[package]]
12
+ name = "heck"
13
+ version = "0.5.0"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
16
+
17
+ [[package]]
18
+ name = "indoc"
19
+ version = "2.0.7"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
22
+ dependencies = [
23
+ "rustversion",
24
+ ]
25
+
26
+ [[package]]
27
+ name = "libc"
28
+ version = "0.2.182"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
31
+
32
+ [[package]]
33
+ name = "memoffset"
34
+ version = "0.9.1"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
37
+ dependencies = [
38
+ "autocfg",
39
+ ]
40
+
41
+ [[package]]
42
+ name = "once_cell"
43
+ version = "1.21.3"
44
+ source = "registry+https://github.com/rust-lang/crates.io-index"
45
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
46
+
47
+ [[package]]
48
+ name = "portable-atomic"
49
+ version = "1.13.1"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
52
+
53
+ [[package]]
54
+ name = "proc-macro2"
55
+ version = "1.0.106"
56
+ source = "registry+https://github.com/rust-lang/crates.io-index"
57
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
58
+ dependencies = [
59
+ "unicode-ident",
60
+ ]
61
+
62
+ [[package]]
63
+ name = "pyo3"
64
+ version = "0.27.2"
65
+ source = "registry+https://github.com/rust-lang/crates.io-index"
66
+ checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
67
+ dependencies = [
68
+ "indoc",
69
+ "libc",
70
+ "memoffset",
71
+ "once_cell",
72
+ "portable-atomic",
73
+ "pyo3-build-config",
74
+ "pyo3-ffi",
75
+ "pyo3-macros",
76
+ "unindent",
77
+ ]
78
+
79
+ [[package]]
80
+ name = "pyo3-build-config"
81
+ version = "0.27.2"
82
+ source = "registry+https://github.com/rust-lang/crates.io-index"
83
+ checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
84
+ dependencies = [
85
+ "target-lexicon",
86
+ ]
87
+
88
+ [[package]]
89
+ name = "pyo3-ffi"
90
+ version = "0.27.2"
91
+ source = "registry+https://github.com/rust-lang/crates.io-index"
92
+ checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
93
+ dependencies = [
94
+ "libc",
95
+ "pyo3-build-config",
96
+ ]
97
+
98
+ [[package]]
99
+ name = "pyo3-macros"
100
+ version = "0.27.2"
101
+ source = "registry+https://github.com/rust-lang/crates.io-index"
102
+ checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
103
+ dependencies = [
104
+ "proc-macro2",
105
+ "pyo3-macros-backend",
106
+ "quote",
107
+ "syn",
108
+ ]
109
+
110
+ [[package]]
111
+ name = "pyo3-macros-backend"
112
+ version = "0.27.2"
113
+ source = "registry+https://github.com/rust-lang/crates.io-index"
114
+ checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
115
+ dependencies = [
116
+ "heck",
117
+ "proc-macro2",
118
+ "pyo3-build-config",
119
+ "quote",
120
+ "syn",
121
+ ]
122
+
123
+ [[package]]
124
+ name = "quote"
125
+ version = "1.0.44"
126
+ source = "registry+https://github.com/rust-lang/crates.io-index"
127
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
128
+ dependencies = [
129
+ "proc-macro2",
130
+ ]
131
+
132
+ [[package]]
133
+ name = "rustversion"
134
+ version = "1.0.22"
135
+ source = "registry+https://github.com/rust-lang/crates.io-index"
136
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
137
+
138
+ [[package]]
139
+ name = "spec256k1"
140
+ version = "0.1.0"
141
+ dependencies = [
142
+ "pyo3",
143
+ ]
144
+
145
+ [[package]]
146
+ name = "syn"
147
+ version = "2.0.117"
148
+ source = "registry+https://github.com/rust-lang/crates.io-index"
149
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
150
+ dependencies = [
151
+ "proc-macro2",
152
+ "quote",
153
+ "unicode-ident",
154
+ ]
155
+
156
+ [[package]]
157
+ name = "target-lexicon"
158
+ version = "0.13.5"
159
+ source = "registry+https://github.com/rust-lang/crates.io-index"
160
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
161
+
162
+ [[package]]
163
+ name = "unicode-ident"
164
+ version = "1.0.24"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
167
+
168
+ [[package]]
169
+ name = "unindent"
170
+ version = "0.2.4"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
@@ -0,0 +1,12 @@
1
+ [package]
2
+ name = "spec256k1"
3
+ version = "0.1.0"
4
+ edition = "2024"
5
+
6
+ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7
+ [lib]
8
+ name = "spec256k1"
9
+ crate-type = ["cdylib"]
10
+
11
+ [dependencies]
12
+ pyo3 = "0.27.0"
@@ -0,0 +1,10 @@
1
+ Metadata-Version: 2.4
2
+ Name: spec256k1
3
+ Version: 0.1.0
4
+ Classifier: Programming Language :: Rust
5
+ Classifier: Programming Language :: Python :: Implementation :: CPython
6
+ Classifier: Programming Language :: Python :: 3.11
7
+ Classifier: Programming Language :: Python :: 3.12
8
+ Classifier: Programming Language :: Python :: 3.13
9
+ Classifier: Programming Language :: Python :: 3.14
10
+ Requires-Python: >=3.11
@@ -0,0 +1,16 @@
1
+ [build-system]
2
+ requires = ["maturin>=1.12,<2.0"]
3
+ build-backend = "maturin"
4
+
5
+ [project]
6
+ name = "spec256k1"
7
+ requires-python = ">=3.11"
8
+ classifiers = [
9
+ "Programming Language :: Rust",
10
+ "Programming Language :: Python :: Implementation :: CPython",
11
+ "Programming Language :: Python :: 3.11",
12
+ "Programming Language :: Python :: 3.12",
13
+ "Programming Language :: Python :: 3.13",
14
+ "Programming Language :: Python :: 3.14",
15
+ ]
16
+ dynamic = ["version"]
@@ -0,0 +1,13 @@
1
+ use pyo3::prelude::*;
2
+
3
+ /// A Python module implemented in Rust.
4
+ #[pymodule]
5
+ mod spec256k1 {
6
+ use pyo3::prelude::*;
7
+
8
+ /// Formats the sum of two numbers as string.
9
+ #[pyfunction]
10
+ fn sum_as_string(a: usize, b: usize) -> PyResult<String> {
11
+ Ok((a + b).to_string())
12
+ }
13
+ }