Files
RustPython/Lib
Lee DogeonandClaude Opus 4.5 3a702ac772 Improve json.loads performance (#6704)
* Parse JSON in Rust

* Reuse key when decoding JSON

* Unmark resolved test

* Parse null/true/false directly in call_scan_once

Parse JSON constants (null, true, false) directly in Rust within
call_scan_once() instead of falling back to Python scan_once.
This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Parse numbers directly in call_scan_once

Parse JSON numbers starting with digits (0-9) directly in Rust within
call_scan_once() by reusing the existing parse_number() method.
This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Parse NaN/Infinity/-Infinity in call_scan_once

Parse special JSON constants (NaN, Infinity, -Infinity) and negative
numbers directly in Rust within call_scan_once(). This handles:
- 'N' -> NaN via parse_constant callback
- 'I' -> Infinity via parse_constant callback
- '-' -> -Infinity or negative numbers via parse_constant/parse_number

This reduces Python-Rust boundary crossings for array/object values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Correct wrong index access

* Leave more flame span

* Refactor json scanstring with byte index

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 19:53:46 +09:00
..
2025-04-11 09:30:58 +09:00
2026-01-15 17:35:01 +09:00
2025-12-24 00:13:30 +09:00
2025-04-03 22:12:54 -07:00
2025-07-20 18:44:46 +09:00
2026-01-05 13:55:07 +09:00
2025-10-22 10:57:47 +03:00
2025-04-06 17:21:28 +09:00
2022-08-07 16:31:38 +09:00
2025-12-26 01:29:58 +09:00
2025-08-21 13:15:39 +09:00
2025-03-20 14:28:26 +09:00
2025-03-10 11:43:53 +09:00
2025-10-22 10:57:47 +03:00
2025-01-11 18:48:27 +09:00
2025-03-10 11:43:53 +09:00
2025-03-10 23:13:32 -07:00
2025-03-26 02:24:01 -05:00
2025-03-20 14:33:54 +09:00
2025-06-30 23:56:34 +09:00
2025-07-20 18:37:38 +09:00
2025-08-21 13:22:21 +09:00
2025-12-30 16:35:58 +09:00
2025-08-01 22:16:32 +09:00
2025-07-09 19:03:53 +09:00
2025-09-07 16:13:22 +09:00
2025-07-25 10:47:20 +09:00
2025-04-21 20:45:06 -07:00
2025-07-08 23:49:57 +09:00
2024-06-22 15:24:42 +09:00
2025-07-25 19:08:01 +09:00
2026-01-10 22:11:53 +09:00
2025-04-30 14:33:52 +09:00
2025-09-15 21:36:11 +09:00
2024-04-22 12:46:32 +09:00
2025-04-30 14:33:52 +09:00
2025-09-16 09:35:08 +09:00
2025-04-21 21:21:10 -07:00
2025-07-08 20:13:52 +09:00
2023-06-14 00:18:14 +03:00
2025-12-12 21:43:24 +09:00
2025-07-01 10:59:41 +09:00
2025-04-21 21:11:42 -07:00
2025-08-01 22:16:32 +09:00
2025-10-05 11:14:33 +09:00
2025-08-08 14:37:35 +09:00
…
2025-04-21 20:43:43 -07:00
2025-07-25 10:50:17 +09:00
…
2025-04-21 20:48:13 -07:00
2025-07-17 00:03:25 +09:00
2024-11-11 00:17:30 +09:00
…
2025-04-30 14:33:52 +09:00
2025-04-21 21:11:42 -07:00
2025-07-17 00:04:12 +09:00
2025-07-15 21:27:05 +09:00
2025-12-28 15:49:10 +09:00
2024-04-26 01:39:02 +09:00
2025-12-29 11:27:08 +09:00
2024-03-22 14:54:02 +09:00
2024-03-22 14:54:02 +09:00
2025-07-20 10:37:43 +09:00
2024-03-22 14:59:19 +09:00
…
2025-05-07 15:01:23 +09:00
…
2025-04-30 14:33:52 +09:00
2025-07-25 10:50:41 +09:00
2025-12-30 16:58:53 +09:00
2025-09-16 21:58:36 +09:00
2025-04-21 08:48:38 +09:00
2025-08-06 10:31:55 +09:00

Standard Library for RustPython

This directory contains all of the Python files that make up the standard library for RustPython.

Most of these files are copied over from the CPython repository (the 3.7 branch), with slight modifications to allow them to work under RustPython. The current goal is to complete the standard library with as few modifications as possible. Current modifications are just temporary workarounds for bugs/missing feature within the RustPython implementation.

The first big module we are targeting is unittest, so we can leverage the CPython test suite.