Avatar for the PyO3 user
PyO3
pyo3
BlogDocsChangelog

Add native_enum: expose Rust enums as Python enum.Enum subclasses

#6020
Comparing
wakita181009:native-enum
(
c0f95ea
) with
main
(
f57bda7
)
CodSpeed Performance Gauge
+13%
Improvement
1
Untouched
104
New
6
Ignored
21
Skipped
1

Benchmarks

133 total
bench_pyclass_create
pyo3-benches/benches/bench_pyclass.rs::benches::bench_pyclass
CodSpeed Performance Gauge
+13%
4.6 µs4.1 µs
native_enum_from_py_member
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A9.1 µs
native_enum_int_enum_class
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A423.9 ns
native_enum_int_enum_from_py_member
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A10.4 µs
native_enum_int_enum_to_py_member
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A2.5 µs
native_enum_py_enum_class
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A394.7 ns
native_enum_to_py_member
pyo3-benches/benches/bench_native_enum.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
N/A
N/A2.4 µs
critical_section_creation
pyo3-benches/benches/bench_critical_sections.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+5%
675 ns645.8 ns
clean_attach
pyo3-benches/benches/bench_attach.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+3%
2.6 µs2.5 µs
bytes_new_medium
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
1.6 µs1.6 µs
byte_slice_into_pyobject_medium
pyo3-benches/benches/bench_intopyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+2%
1.7 µs1.6 µs
test_many_keyword_arguments_py
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
+2%
19.6 µs19.3 µs
tuple_into_pyobject
pyo3-benches/benches/bench_tuple.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
2.7 µs2.7 µs
first_time_init
pyo3-benches/benches/bench_pyclass.rs::benches::bench_first_time_init
CodSpeed Performance Gauge
+1%
42.1 µs41.6 µs
vec_bytes_from_py_bytearray_medium
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
2.9 µs2.9 µs
extract_bigint_extract_fail
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
9.7 µs9.6 µs
call_method_0
pyo3-benches/benches/bench_call.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
706.2 µs700.7 µs
extract_bigint_big_negative
pyo3-benches/benches/bench_bigint.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
4 µs4 µs
not_a_list_via_extract_enum
pyo3-benches/benches/bench_frompyobject.rs::benches::criterion_benchmark
CodSpeed Performance Gauge
+1%
19.1 µs19 µs
test_none_rs
pytests/tests/test_pyfunctions.py
CodSpeed Performance Gauge
+1%
13.4 µs13.3 µs
test_class_attribute
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
+1%
16.2 µs16.1 µs
test_getter
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
18.3 µs18.3 µs
test_class_method
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
18.5 µs18.4 µs
test_proto_call_py
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
15.4 µs15.3 µs
test_proto_call
pytests/tests/test_pyclasses.py
CodSpeed Performance Gauge
0%
14.1 µs14.1 µs

Commits

Click on a commit to change the comparison range
Base
main
f57bda7
+12.89%
fix: use URL for NativeEnum doc link in proc-macro crate
ad12c50
19 hours ago
by wakita181009
0%
fix: add native_enums.pyi stub for introspection test
18dcacb
19 hours ago
by wakita181009
0%
fix: use String instead of &str in FromPyObject for abi3 compatibility
1dbd0c0
19 hours ago
by wakita181009
0%
refactor: use `name` instead of `rename` for native_enum attributes
c0f95ea
18 hours ago
by wakita181009
© 2026 CodSpeed Technology
Home Terms Privacy Docs