ormsgpack 1.5.0__tar.gz → 1.7.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.
Potentially problematic release.
This version of ormsgpack might be problematic. Click here for more details.
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/CHANGELOG.md +37 -9
- ormsgpack-1.7.0/Cargo.lock +286 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/Cargo.toml +7 -8
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/PKG-INFO +19 -29
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/README.md +16 -26
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/pyproject.toml +13 -3
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/python/ormsgpack/__init__.pyi +4 -1
- ormsgpack-1.7.0/src/deserialize/cache.rs +72 -0
- ormsgpack-1.7.0/src/deserialize/deserializer.rs +576 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/lib.rs +1 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/dataclass.rs +42 -76
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/datetimelike.rs +1 -1
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/ext.rs +1 -4
- ormsgpack-1.7.0/src/serialize/serializer.rs +803 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/typeref.rs +4 -4
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/unicode.rs +11 -55
- ormsgpack-1.5.0/Cargo.lock +0 -428
- ormsgpack-1.5.0/src/deserialize/cache.rs +0 -48
- ormsgpack-1.5.0/src/deserialize/deserializer.rs +0 -526
- ormsgpack-1.5.0/src/serialize/serializer.rs +0 -318
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/LICENSE-APACHE +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/LICENSE-MIT +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/build.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/python/ormsgpack/__init__.py +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/python/ormsgpack/py.typed +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/deserialize/error.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/deserialize/mod.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/exc.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/ext.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/ffi.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/opt.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/bytes.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/datetime.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/default.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/dict.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/int.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/list.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/mod.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/numpy.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/str.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/tuple.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/uuid.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/serialize/writer.rs +0 -0
- {ormsgpack-1.5.0 → ormsgpack-1.7.0}/src/util.rs +0 -0
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.7.0 29/11/2024
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Detect Pydantic 2.10 models [#311](/../../issues/311)
|
|
8
|
+
- Fix serialization of dataclasses without `__slots__` and with a field defined
|
|
9
|
+
with a descriptor object as default value, a field defined with `init=False`
|
|
10
|
+
and a default value, or a cached property
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Drop support for Python 3.8
|
|
15
|
+
- Support `OPT_SORT_KEYS` also for Pydantic models [#312](/../../issues/312)
|
|
16
|
+
- Improve deserialization performance
|
|
17
|
+
|
|
18
|
+
## 1.6.0 18/10/2024
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Deduplicate map keys also when `OPT_NON_STR_KEYS` is set [#279](/../../issues/279)
|
|
23
|
+
- Add missing type information for Ext type by [trim21](https://github.com/trim21) in [#285](/../../pull/285)
|
|
24
|
+
- Fix type annotation of unpackb first argument
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Add support for python 3.13
|
|
29
|
+
- Improve test coverage
|
|
30
|
+
|
|
3
31
|
## 1.5.0 19/04/2024
|
|
4
32
|
|
|
5
33
|
- Add support for numpy datetime64 and float16 types
|
|
@@ -47,7 +75,7 @@
|
|
|
47
75
|
|
|
48
76
|
### Fixed
|
|
49
77
|
|
|
50
|
-
- `once_cell` poisoning on parallel initialization by
|
|
78
|
+
- `once_cell` poisoning on parallel initialization by [@Quitlox](https://github.com/Quitlox) in [#153](/../../pull/153)
|
|
51
79
|
|
|
52
80
|
|
|
53
81
|
## 1.2.5 02/02/2023
|
|
@@ -69,7 +97,7 @@
|
|
|
69
97
|
|
|
70
98
|
## 1.2.3 - 26/06/2022
|
|
71
99
|
### Misc
|
|
72
|
-
- Updated dependencies. partially by [@tilman19](
|
|
100
|
+
- Updated dependencies. partially by [@tilman19](/../../pull/101)
|
|
73
101
|
- Handle clippy warnings.
|
|
74
102
|
|
|
75
103
|
|
|
@@ -82,15 +110,15 @@
|
|
|
82
110
|
- Update dependencies
|
|
83
111
|
## 1.2.0 - 14/2/2022
|
|
84
112
|
### Changed
|
|
85
|
-
- Extended int passthrough to support u64. by [@pejter](
|
|
113
|
+
- Extended int passthrough to support u64. by [@pejter](/../../pull/77)
|
|
86
114
|
### Misc
|
|
87
|
-
- Updated README to include new options. by [@ThomasTNO](
|
|
115
|
+
- Updated README to include new options. by [@ThomasTNO](/../../pull/70)
|
|
88
116
|
- Updated dependencies
|
|
89
117
|
- Renamed in `numpy.rs` `from_parent` to `to_children` to fix new lint rules
|
|
90
118
|
## 1.1.0 - 8/1/2022
|
|
91
119
|
### Added
|
|
92
|
-
- Add optional passthrough for tuples. by [@TariqTNO](
|
|
93
|
-
- Add optional passthrough for ints, that do not fit into an i64. by [@TariqTNO](
|
|
120
|
+
- Add optional passthrough for tuples. by [@TariqTNO](/../../pull/64)
|
|
121
|
+
- Add optional passthrough for ints, that do not fit into an i64. by [@TariqTNO](/../../pull/64)
|
|
94
122
|
### Changed
|
|
95
123
|
- `opt` parameter can be `None`.
|
|
96
124
|
### Misc
|
|
@@ -132,7 +160,7 @@
|
|
|
132
160
|
- Refactored adding objects to the module, creating a `__all__` object similar to the way PyO3 creates. This solves an issue with upgrading to new maturin version.
|
|
133
161
|
- Changed < Py3.7 implementation to use automatic range inclusion.
|
|
134
162
|
- Added test to validate correct Python method flags are used on declare.
|
|
135
|
-
- Changed to use PyO3 configurations instead of our own. PR [#25](
|
|
163
|
+
- Changed to use PyO3 configurations instead of our own. PR [#25](/../../pull/25) by [@pejter](https://github.com/pejter).
|
|
136
164
|
## 0.3.2 - 13/7/2021
|
|
137
165
|
### Fixed
|
|
138
166
|
- Fix memory leak serializing `datetime.datetime` with `tzinfo`. (Copied from orjson)
|
|
@@ -142,9 +170,9 @@
|
|
|
142
170
|
- Setup dependabot.
|
|
143
171
|
## 0.3.1 - 19/6/2021
|
|
144
172
|
### Changed
|
|
145
|
-
- `packb` of maps and sequences is now almost 2x faster as it leverages known size. PR [#18](
|
|
173
|
+
- `packb` of maps and sequences is now almost 2x faster as it leverages known size. PR [#18](/../../pull/18) by [@ijl](https://github.com/ijl).
|
|
146
174
|
### Misc
|
|
147
|
-
- Added `scripts/bench_target.py` and `scripts/profile.sh` for easily benchmarking and profiling. Works only on Linux. PR [#17](
|
|
175
|
+
- Added `scripts/bench_target.py` and `scripts/profile.sh` for easily benchmarking and profiling. Works only on Linux. PR [#17](/../../pull/17) by [@ijl](https://github.com/ijl).
|
|
148
176
|
## 0.3.0 - 13/6/2021
|
|
149
177
|
### Added
|
|
150
178
|
- `unpackb` now accepts keyword argument `option` with argument `OPT_NON_STR_KEYS`. This option will let ormsgpack
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 3
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "ahash"
|
|
7
|
+
version = "0.8.11"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
|
10
|
+
dependencies = [
|
|
11
|
+
"cfg-if",
|
|
12
|
+
"once_cell",
|
|
13
|
+
"version_check",
|
|
14
|
+
"zerocopy",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
[[package]]
|
|
18
|
+
name = "autocfg"
|
|
19
|
+
version = "1.3.0"
|
|
20
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
+
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
|
|
22
|
+
|
|
23
|
+
[[package]]
|
|
24
|
+
name = "bytecount"
|
|
25
|
+
version = "0.6.8"
|
|
26
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
+
checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce"
|
|
28
|
+
|
|
29
|
+
[[package]]
|
|
30
|
+
name = "byteorder"
|
|
31
|
+
version = "1.5.0"
|
|
32
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
33
|
+
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
34
|
+
|
|
35
|
+
[[package]]
|
|
36
|
+
name = "cfg-if"
|
|
37
|
+
version = "1.0.0"
|
|
38
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
|
+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
40
|
+
|
|
41
|
+
[[package]]
|
|
42
|
+
name = "chrono"
|
|
43
|
+
version = "0.4.38"
|
|
44
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
45
|
+
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
|
|
46
|
+
dependencies = [
|
|
47
|
+
"num-traits",
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
[[package]]
|
|
51
|
+
name = "crunchy"
|
|
52
|
+
version = "0.2.2"
|
|
53
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
54
|
+
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
|
55
|
+
|
|
56
|
+
[[package]]
|
|
57
|
+
name = "half"
|
|
58
|
+
version = "2.4.1"
|
|
59
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
60
|
+
checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
|
|
61
|
+
dependencies = [
|
|
62
|
+
"cfg-if",
|
|
63
|
+
"crunchy",
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
[[package]]
|
|
67
|
+
name = "itoa"
|
|
68
|
+
version = "1.0.13"
|
|
69
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
70
|
+
checksum = "540654e97a3f4470a492cd30ff187bc95d89557a903a2bbf112e2fae98104ef2"
|
|
71
|
+
|
|
72
|
+
[[package]]
|
|
73
|
+
name = "libc"
|
|
74
|
+
version = "0.2.154"
|
|
75
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
76
|
+
checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
|
|
77
|
+
|
|
78
|
+
[[package]]
|
|
79
|
+
name = "memoffset"
|
|
80
|
+
version = "0.9.1"
|
|
81
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
82
|
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
83
|
+
dependencies = [
|
|
84
|
+
"autocfg",
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
[[package]]
|
|
88
|
+
name = "num-traits"
|
|
89
|
+
version = "0.2.19"
|
|
90
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
91
|
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
92
|
+
dependencies = [
|
|
93
|
+
"autocfg",
|
|
94
|
+
]
|
|
95
|
+
|
|
96
|
+
[[package]]
|
|
97
|
+
name = "once_cell"
|
|
98
|
+
version = "1.20.2"
|
|
99
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
100
|
+
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
|
|
101
|
+
|
|
102
|
+
[[package]]
|
|
103
|
+
name = "ormsgpack"
|
|
104
|
+
version = "1.7.0"
|
|
105
|
+
dependencies = [
|
|
106
|
+
"ahash",
|
|
107
|
+
"bytecount",
|
|
108
|
+
"byteorder",
|
|
109
|
+
"chrono",
|
|
110
|
+
"half",
|
|
111
|
+
"itoa",
|
|
112
|
+
"once_cell",
|
|
113
|
+
"pyo3",
|
|
114
|
+
"pyo3-build-config",
|
|
115
|
+
"rmp",
|
|
116
|
+
"serde",
|
|
117
|
+
"serde_bytes",
|
|
118
|
+
"simdutf8",
|
|
119
|
+
"smallvec",
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[[package]]
|
|
123
|
+
name = "paste"
|
|
124
|
+
version = "1.0.15"
|
|
125
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
126
|
+
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
|
127
|
+
|
|
128
|
+
[[package]]
|
|
129
|
+
name = "portable-atomic"
|
|
130
|
+
version = "1.6.0"
|
|
131
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
132
|
+
checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
|
|
133
|
+
|
|
134
|
+
[[package]]
|
|
135
|
+
name = "proc-macro2"
|
|
136
|
+
version = "1.0.89"
|
|
137
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
138
|
+
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
|
|
139
|
+
dependencies = [
|
|
140
|
+
"unicode-ident",
|
|
141
|
+
]
|
|
142
|
+
|
|
143
|
+
[[package]]
|
|
144
|
+
name = "pyo3"
|
|
145
|
+
version = "0.22.6"
|
|
146
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
147
|
+
checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
|
|
148
|
+
dependencies = [
|
|
149
|
+
"cfg-if",
|
|
150
|
+
"libc",
|
|
151
|
+
"memoffset",
|
|
152
|
+
"once_cell",
|
|
153
|
+
"portable-atomic",
|
|
154
|
+
"pyo3-build-config",
|
|
155
|
+
"pyo3-ffi",
|
|
156
|
+
]
|
|
157
|
+
|
|
158
|
+
[[package]]
|
|
159
|
+
name = "pyo3-build-config"
|
|
160
|
+
version = "0.22.6"
|
|
161
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
162
|
+
checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
|
|
163
|
+
dependencies = [
|
|
164
|
+
"once_cell",
|
|
165
|
+
"target-lexicon",
|
|
166
|
+
]
|
|
167
|
+
|
|
168
|
+
[[package]]
|
|
169
|
+
name = "pyo3-ffi"
|
|
170
|
+
version = "0.22.6"
|
|
171
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
172
|
+
checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
|
|
173
|
+
dependencies = [
|
|
174
|
+
"libc",
|
|
175
|
+
"pyo3-build-config",
|
|
176
|
+
]
|
|
177
|
+
|
|
178
|
+
[[package]]
|
|
179
|
+
name = "quote"
|
|
180
|
+
version = "1.0.36"
|
|
181
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
182
|
+
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
|
|
183
|
+
dependencies = [
|
|
184
|
+
"proc-macro2",
|
|
185
|
+
]
|
|
186
|
+
|
|
187
|
+
[[package]]
|
|
188
|
+
name = "rmp"
|
|
189
|
+
version = "0.8.14"
|
|
190
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
191
|
+
checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
|
|
192
|
+
dependencies = [
|
|
193
|
+
"byteorder",
|
|
194
|
+
"num-traits",
|
|
195
|
+
"paste",
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
[[package]]
|
|
199
|
+
name = "serde"
|
|
200
|
+
version = "1.0.215"
|
|
201
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
|
+
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
|
|
203
|
+
dependencies = [
|
|
204
|
+
"serde_derive",
|
|
205
|
+
]
|
|
206
|
+
|
|
207
|
+
[[package]]
|
|
208
|
+
name = "serde_bytes"
|
|
209
|
+
version = "0.11.15"
|
|
210
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
211
|
+
checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a"
|
|
212
|
+
dependencies = [
|
|
213
|
+
"serde",
|
|
214
|
+
]
|
|
215
|
+
|
|
216
|
+
[[package]]
|
|
217
|
+
name = "serde_derive"
|
|
218
|
+
version = "1.0.215"
|
|
219
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
220
|
+
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
|
|
221
|
+
dependencies = [
|
|
222
|
+
"proc-macro2",
|
|
223
|
+
"quote",
|
|
224
|
+
"syn",
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
[[package]]
|
|
228
|
+
name = "simdutf8"
|
|
229
|
+
version = "0.1.5"
|
|
230
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
231
|
+
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
|
|
232
|
+
|
|
233
|
+
[[package]]
|
|
234
|
+
name = "smallvec"
|
|
235
|
+
version = "1.13.2"
|
|
236
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
237
|
+
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
|
238
|
+
|
|
239
|
+
[[package]]
|
|
240
|
+
name = "syn"
|
|
241
|
+
version = "2.0.82"
|
|
242
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
243
|
+
checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021"
|
|
244
|
+
dependencies = [
|
|
245
|
+
"proc-macro2",
|
|
246
|
+
"quote",
|
|
247
|
+
"unicode-ident",
|
|
248
|
+
]
|
|
249
|
+
|
|
250
|
+
[[package]]
|
|
251
|
+
name = "target-lexicon"
|
|
252
|
+
version = "0.12.14"
|
|
253
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
254
|
+
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
|
|
255
|
+
|
|
256
|
+
[[package]]
|
|
257
|
+
name = "unicode-ident"
|
|
258
|
+
version = "1.0.12"
|
|
259
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
260
|
+
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
|
261
|
+
|
|
262
|
+
[[package]]
|
|
263
|
+
name = "version_check"
|
|
264
|
+
version = "0.9.4"
|
|
265
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
266
|
+
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
|
267
|
+
|
|
268
|
+
[[package]]
|
|
269
|
+
name = "zerocopy"
|
|
270
|
+
version = "0.7.34"
|
|
271
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
272
|
+
checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
|
|
273
|
+
dependencies = [
|
|
274
|
+
"zerocopy-derive",
|
|
275
|
+
]
|
|
276
|
+
|
|
277
|
+
[[package]]
|
|
278
|
+
name = "zerocopy-derive"
|
|
279
|
+
version = "0.7.34"
|
|
280
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
281
|
+
checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
|
|
282
|
+
dependencies = [
|
|
283
|
+
"proc-macro2",
|
|
284
|
+
"quote",
|
|
285
|
+
"syn",
|
|
286
|
+
]
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "ormsgpack"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.7.0"
|
|
4
4
|
authors = [
|
|
5
5
|
"Aviram Hassan <aviramyhassan@gmail.com>",
|
|
6
6
|
"Emanuele Giaquinta <emanuele.giaquinta@gmail.com>",
|
|
7
7
|
]
|
|
8
8
|
description = "Fast, correct Python msgpack library supporting dataclasses, datetimes, and numpy"
|
|
9
9
|
edition = "2021"
|
|
10
|
+
rust-version = "1.70"
|
|
10
11
|
license = "Apache-2.0 OR MIT"
|
|
11
12
|
repository = "https://github.com/aviramha/ormsgpack"
|
|
12
13
|
homepage = "https://github.com/aviramha/ormsgpack"
|
|
@@ -33,27 +34,25 @@ default = ["unstable-simd"]
|
|
|
33
34
|
# Use SIMD intrinsics. This requires Rust on the nightly channel.
|
|
34
35
|
unstable-simd = [
|
|
35
36
|
"bytecount/generic-simd",
|
|
36
|
-
"encoding_rs/simd-accel",
|
|
37
37
|
]
|
|
38
38
|
|
|
39
39
|
[dependencies]
|
|
40
40
|
ahash = { version = "0.8", default-features = false }
|
|
41
|
-
associative-cache = { version = "2", default-features = false }
|
|
42
41
|
bytecount = { version = "^0.6.7", default-features = false, features = ["runtime-dispatch-simd"] }
|
|
42
|
+
byteorder = { version = "1.5.0", default-features = false, features = ["std"] }
|
|
43
43
|
chrono = { version = "0.4.38", default-features = false }
|
|
44
|
-
encoding_rs = { version = "0.8", default-features = false }
|
|
45
44
|
half = { version = "2.4.1", default-features = false }
|
|
46
45
|
itoa = { version = "1", default-features = false }
|
|
47
46
|
once_cell = { version = "1", default-features = false, features = ["race"] }
|
|
48
|
-
pyo3 = { version = "^0.
|
|
47
|
+
pyo3 = { version = "^0.22.6", default-features = false, features = ["extension-module"] }
|
|
49
48
|
rmp = { version = "^0.8.14", default-features = false, features = ["std"] }
|
|
50
|
-
rmp-serde = { version = "1", default-features = false }
|
|
51
49
|
serde = { version = "1", default-features = false }
|
|
52
|
-
serde_bytes = { version = "0.11.
|
|
50
|
+
serde_bytes = { version = "0.11.15", default-features = false, features = ["std"] }
|
|
51
|
+
simdutf8 = { version = "0.1.5", default-features = false, features = ["std"] }
|
|
53
52
|
smallvec = { version = "^1.13", default-features = false, features = ["union", "write"] }
|
|
54
53
|
|
|
55
54
|
[build-dependencies]
|
|
56
|
-
pyo3-build-config = { version = "^0.
|
|
55
|
+
pyo3-build-config = { version = "^0.22.0" }
|
|
57
56
|
|
|
58
57
|
[profile.release]
|
|
59
58
|
codegen-units = 1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: ormsgpack
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Classifier: Development Status :: 5 - Production/Stable
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -9,11 +9,11 @@ Classifier: Operating System :: MacOS
|
|
|
9
9
|
Classifier: Operating System :: Microsoft :: Windows
|
|
10
10
|
Classifier: Operating System :: POSIX :: Linux
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
17
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
18
18
|
Classifier: Programming Language :: Python
|
|
19
19
|
Classifier: Programming Language :: Rust
|
|
@@ -26,7 +26,7 @@ Home-Page: https://github.com/aviramha/ormsgpack
|
|
|
26
26
|
Author: Aviram Hassan <aviramyhassan@gmail.com>, Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
|
|
27
27
|
Author-email: Aviram Hassan <aviramyhassan@gmail.com>, Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
|
|
28
28
|
License: Apache-2.0 OR MIT
|
|
29
|
-
Requires-Python: >=3.
|
|
29
|
+
Requires-Python: >=3.9
|
|
30
30
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
31
31
|
Project-URL: Source Code, https://github.com/aviramha/ormsgpack
|
|
32
32
|
|
|
@@ -34,27 +34,13 @@ Project-URL: Source Code, https://github.com/aviramha/ormsgpack
|
|
|
34
34
|

|
|
35
35
|

|
|
36
36
|
|
|
37
|
-
ormsgpack is a fast msgpack library for Python
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
[dataclass](#dataclass),
|
|
41
|
-
[datetime](#datetime),
|
|
42
|
-
[numpy](#numpy),
|
|
43
|
-
[pydantic](#pydantic) and
|
|
44
|
-
[UUID](#uuid) instances natively.
|
|
37
|
+
ormsgpack is a fast msgpack serialization library for Python derived
|
|
38
|
+
from [orjson](https://github.com/ijl/orjson), with native support for
|
|
39
|
+
various Python types.
|
|
45
40
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* serializes `datetime`, `date`, and `time` instances to RFC 3339 format,
|
|
50
|
-
e.g., "1970-01-01T00:00:00+00:00"
|
|
51
|
-
* serializes `numpy.ndarray` instances natively and faster.
|
|
52
|
-
* serializes `pydantic.BaseModel` instances natively
|
|
53
|
-
* serializes arbitrary types using a `default` hook
|
|
54
|
-
|
|
55
|
-
ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11 and 3.12. ormsgpack does not support PyPy. Releases follow semantic
|
|
56
|
-
versioning and serializing a new object type without an opt-in flag is
|
|
57
|
-
considered a breaking change.
|
|
41
|
+
ormsgpack supports CPython 3.9, 3.10, 3.11, 3.12 and 3.13. Releases
|
|
42
|
+
follow semantic versioning and serializing a new object type without
|
|
43
|
+
an opt-in flag is considered a breaking change.
|
|
58
44
|
|
|
59
45
|
ormsgpack is licensed under both the Apache 2.0 and MIT licenses. The
|
|
60
46
|
repository and issue tracker is
|
|
@@ -137,7 +123,7 @@ serializes subclasses of `str`, `int`, `dict`, `list`,
|
|
|
137
123
|
of `tuple` to avoid serializing `namedtuple` objects as arrays. To avoid
|
|
138
124
|
serializing subclasses, specify the option `ormsgpack.OPT_PASSTHROUGH_SUBCLASS`.
|
|
139
125
|
|
|
140
|
-
The output is a `bytes` object
|
|
126
|
+
The output is a `bytes` object.
|
|
141
127
|
|
|
142
128
|
The global interpreter lock (GIL) is held for the duration of the call.
|
|
143
129
|
|
|
@@ -441,8 +427,8 @@ Serialize `pydantic.BaseModel` instances.
|
|
|
441
427
|
|
|
442
428
|
##### OPT_SORT_KEYS
|
|
443
429
|
|
|
444
|
-
Serialize `dict` keys in sorted order. The default
|
|
445
|
-
unspecified order.
|
|
430
|
+
Serialize `dict` keys and pydantic model fields in sorted order. The default
|
|
431
|
+
is to serialize in an unspecified order.
|
|
446
432
|
|
|
447
433
|
This can be used to ensure the order is deterministic for hashing or tests.
|
|
448
434
|
It has a substantial performance penalty and is not recommended in general.
|
|
@@ -795,7 +781,11 @@ b'\xd9$886313e1-3b8a-5372-9b90-0c9aee199e5d'
|
|
|
795
781
|
```
|
|
796
782
|
|
|
797
783
|
### Pydantic
|
|
798
|
-
ormsgpack serializes `pydantic.BaseModel` instances natively
|
|
784
|
+
ormsgpack serializes `pydantic.BaseModel` instances natively, with
|
|
785
|
+
[duck-typing](https://docs.pydantic.dev/2.10/concepts/serialization/#serializing-with-duck-typing).
|
|
786
|
+
This is equivalent to serializing
|
|
787
|
+
`model.model_dump(serialize_as_any=True)` with Pydantic V2 or
|
|
788
|
+
`model.dict()`with Pydantic V1.
|
|
799
789
|
|
|
800
790
|
#### Performance
|
|
801
791
|

|
|
@@ -904,7 +894,7 @@ level above this.
|
|
|
904
894
|
|
|
905
895
|
## Packaging
|
|
906
896
|
|
|
907
|
-
To package ormsgpack requires [Rust](https://www.rust-lang.org/) 1.
|
|
897
|
+
To package ormsgpack requires [Rust](https://www.rust-lang.org/) 1.70
|
|
908
898
|
or newer and the [maturin](https://github.com/PyO3/maturin) build
|
|
909
899
|
tool. The default feature `unstable-simd` enables the usage of SIMD
|
|
910
900
|
operations and requires nightly Rust. The recommended build command
|
|
@@ -2,27 +2,13 @@
|
|
|
2
2
|

|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
ormsgpack is a fast msgpack library for Python
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
[UUID](#uuid) instances natively.
|
|
13
|
-
|
|
14
|
-
Its features and drawbacks compared to other Python msgpack libraries:
|
|
15
|
-
|
|
16
|
-
* serializes `dataclass` instances natively.
|
|
17
|
-
* serializes `datetime`, `date`, and `time` instances to RFC 3339 format,
|
|
18
|
-
e.g., "1970-01-01T00:00:00+00:00"
|
|
19
|
-
* serializes `numpy.ndarray` instances natively and faster.
|
|
20
|
-
* serializes `pydantic.BaseModel` instances natively
|
|
21
|
-
* serializes arbitrary types using a `default` hook
|
|
22
|
-
|
|
23
|
-
ormsgpack supports CPython 3.8, 3.9, 3.10, 3.11 and 3.12. ormsgpack does not support PyPy. Releases follow semantic
|
|
24
|
-
versioning and serializing a new object type without an opt-in flag is
|
|
25
|
-
considered a breaking change.
|
|
5
|
+
ormsgpack is a fast msgpack serialization library for Python derived
|
|
6
|
+
from [orjson](https://github.com/ijl/orjson), with native support for
|
|
7
|
+
various Python types.
|
|
8
|
+
|
|
9
|
+
ormsgpack supports CPython 3.9, 3.10, 3.11, 3.12 and 3.13. Releases
|
|
10
|
+
follow semantic versioning and serializing a new object type without
|
|
11
|
+
an opt-in flag is considered a breaking change.
|
|
26
12
|
|
|
27
13
|
ormsgpack is licensed under both the Apache 2.0 and MIT licenses. The
|
|
28
14
|
repository and issue tracker is
|
|
@@ -105,7 +91,7 @@ serializes subclasses of `str`, `int`, `dict`, `list`,
|
|
|
105
91
|
of `tuple` to avoid serializing `namedtuple` objects as arrays. To avoid
|
|
106
92
|
serializing subclasses, specify the option `ormsgpack.OPT_PASSTHROUGH_SUBCLASS`.
|
|
107
93
|
|
|
108
|
-
The output is a `bytes` object
|
|
94
|
+
The output is a `bytes` object.
|
|
109
95
|
|
|
110
96
|
The global interpreter lock (GIL) is held for the duration of the call.
|
|
111
97
|
|
|
@@ -409,8 +395,8 @@ Serialize `pydantic.BaseModel` instances.
|
|
|
409
395
|
|
|
410
396
|
##### OPT_SORT_KEYS
|
|
411
397
|
|
|
412
|
-
Serialize `dict` keys in sorted order. The default
|
|
413
|
-
unspecified order.
|
|
398
|
+
Serialize `dict` keys and pydantic model fields in sorted order. The default
|
|
399
|
+
is to serialize in an unspecified order.
|
|
414
400
|
|
|
415
401
|
This can be used to ensure the order is deterministic for hashing or tests.
|
|
416
402
|
It has a substantial performance penalty and is not recommended in general.
|
|
@@ -763,7 +749,11 @@ b'\xd9$886313e1-3b8a-5372-9b90-0c9aee199e5d'
|
|
|
763
749
|
```
|
|
764
750
|
|
|
765
751
|
### Pydantic
|
|
766
|
-
ormsgpack serializes `pydantic.BaseModel` instances natively
|
|
752
|
+
ormsgpack serializes `pydantic.BaseModel` instances natively, with
|
|
753
|
+
[duck-typing](https://docs.pydantic.dev/2.10/concepts/serialization/#serializing-with-duck-typing).
|
|
754
|
+
This is equivalent to serializing
|
|
755
|
+
`model.model_dump(serialize_as_any=True)` with Pydantic V2 or
|
|
756
|
+
`model.dict()`with Pydantic V1.
|
|
767
757
|
|
|
768
758
|
#### Performance
|
|
769
759
|

|
|
@@ -872,7 +862,7 @@ level above this.
|
|
|
872
862
|
|
|
873
863
|
## Packaging
|
|
874
864
|
|
|
875
|
-
To package ormsgpack requires [Rust](https://www.rust-lang.org/) 1.
|
|
865
|
+
To package ormsgpack requires [Rust](https://www.rust-lang.org/) 1.70
|
|
876
866
|
or newer and the [maturin](https://github.com/PyO3/maturin) build
|
|
877
867
|
tool. The default feature `unstable-simd` enables the usage of SIMD
|
|
878
868
|
operations and requires nightly Rust. The recommended build command
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ormsgpack"
|
|
3
3
|
repository = "https://github.com/aviramha/ormsgpack"
|
|
4
|
-
requires-python = ">=3.
|
|
4
|
+
requires-python = ">=3.9"
|
|
5
5
|
classifiers = [
|
|
6
6
|
"Development Status :: 5 - Production/Stable",
|
|
7
7
|
"Intended Audience :: Developers",
|
|
@@ -11,11 +11,11 @@ classifiers = [
|
|
|
11
11
|
"Operating System :: Microsoft :: Windows",
|
|
12
12
|
"Operating System :: POSIX :: Linux",
|
|
13
13
|
"Programming Language :: Python :: 3",
|
|
14
|
-
"Programming Language :: Python :: 3.8",
|
|
15
14
|
"Programming Language :: Python :: 3.9",
|
|
16
15
|
"Programming Language :: Python :: 3.10",
|
|
17
16
|
"Programming Language :: Python :: 3.11",
|
|
18
17
|
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Programming Language :: Python :: 3.13",
|
|
19
19
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
20
20
|
"Programming Language :: Python",
|
|
21
21
|
"Programming Language :: Rust",
|
|
@@ -30,9 +30,17 @@ requires = ["maturin>=1.0,<2.0"]
|
|
|
30
30
|
python-source = "python"
|
|
31
31
|
strip = true
|
|
32
32
|
|
|
33
|
+
[tool.mypy]
|
|
34
|
+
exclude = "benchmarks"
|
|
35
|
+
strict = true
|
|
36
|
+
|
|
37
|
+
[[tool.mypy.overrides]]
|
|
38
|
+
module = ["msgpack"]
|
|
39
|
+
ignore_missing_imports = true
|
|
40
|
+
|
|
33
41
|
[tool.ruff]
|
|
34
42
|
line-length = 88
|
|
35
|
-
target-version = "
|
|
43
|
+
target-version = "py39"
|
|
36
44
|
|
|
37
45
|
[tool.ruff.lint]
|
|
38
46
|
select = [
|
|
@@ -43,6 +51,8 @@ select = [
|
|
|
43
51
|
]
|
|
44
52
|
ignore = [
|
|
45
53
|
"E501",
|
|
54
|
+
"RUF022",
|
|
55
|
+
"RUF023",
|
|
46
56
|
]
|
|
47
57
|
|
|
48
58
|
[tool.ruff.lint.isort]
|
|
@@ -8,7 +8,7 @@ def packb(
|
|
|
8
8
|
option: Optional[int] = None,
|
|
9
9
|
) -> bytes: ...
|
|
10
10
|
def unpackb(
|
|
11
|
-
|
|
11
|
+
obj: Union[bytes, bytearray, memoryview],
|
|
12
12
|
ext_hook: Optional[Callable[[int, bytes], Any]] = ...,
|
|
13
13
|
option: Optional[int] = ...,
|
|
14
14
|
) -> Any: ...
|
|
@@ -16,6 +16,9 @@ def unpackb(
|
|
|
16
16
|
class MsgpackDecodeError(ValueError): ...
|
|
17
17
|
class MsgpackEncodeError(TypeError): ...
|
|
18
18
|
|
|
19
|
+
class Ext:
|
|
20
|
+
def __init__(self, tag: int, data: bytes) -> None: ...
|
|
21
|
+
|
|
19
22
|
OPT_NAIVE_UTC: int
|
|
20
23
|
OPT_OMIT_MICROSECONDS: int
|
|
21
24
|
OPT_PASSTHROUGH_BIG_INT: int
|