@@ -43,7 +43,7 @@ CppCon 2025
4343
4444---
4545
46- # JSON downside ?
46+ # JSON Downside ?
4747
4848Reading and writing JSON can be * slow* . E.g., 100 MB/s to 300 MB/s.
4949
@@ -70,7 +70,7 @@ Source: Gwen (Chen) Shapira
7070
7171---
7272
73- # Performance
73+ # Parsing at Gigabytes per Second
7474
7575* simdjson was the first library to break the gigabyte per second barrier
7676 * Parsing Gigabytes of JSON per Second, VLDB Journal 28 (6), 2019
@@ -91,7 +91,7 @@ Source: Gwen (Chen) Shapira
9191
9292---
9393
94- # Not all processors are equal
94+ # Not All Processors are Equal
9595
9696| processor | year | arithmetic logic units | SIMD units |
9797| -----------------| ---------| ---------------------------| ----------------|
@@ -101,7 +101,7 @@ Source: Gwen (Chen) Shapira
101101
102102---
103103
104- # SIMD support in simdjson
104+ # SIMD Support in simdjson
105105
106106* x64: SSSE3 (128-bit), AVX-2 (256-bit), AVX-512 (512-bit)
107107* ARM NEON
@@ -111,7 +111,7 @@ Source: Gwen (Chen) Shapira
111111
112112---
113113
114- # simdjson: design
114+ # simdjson: Design
115115
116116* First scan identifies the structural characters, start of all strings at about 10 GB/s using SIMD instructions.
117117* Validates Unicode (UTF-8) at 30 GB/s.
@@ -270,14 +270,17 @@ Player deserializedPlayer = JsonSerializer.Deserialize<Player>(jsonInput, option
270270
271271---
272272
273- # Why can C# implementation be so elegant ?
273+ # How can C# Implementation be so Elegant ?
274274It is using ** reflection** to access the attributes of a struct during runtime.
275275
276276---
277277
278278# Rust (serde)
279279
280280``` rust
281+ #[derive(Serialize , Deserialize )] // Annotation is required
282+ pub struct player {}
283+
281284// Rust with serde
282285let json_str = serde_json :: to_string (& player )? ;
283286let player : Player = serde_json :: from_str (& json_str )? ;
@@ -287,7 +290,7 @@ let player: Player = serde_json::from_str(&json_str)?;
287290
288291---
289292
290- # Rust reflection
293+ # Rust Reflection
291294
292295* Rust does not have any built-in reflection capabilities.
293296* Serde relies on annotation and macros.
@@ -297,7 +300,7 @@ let player: Player = serde_json::from_str(&json_str)?;
297300---
298301
299302
300- # Reflection as accessing the attributes of a struct.
303+ # Reflection as Accessing the Attributes of a Structure
301304
302305| language | runtime reflection | compile-time reflection |
303306| :---------| :-------------------| :------------------------|
@@ -309,7 +312,7 @@ let player: Player = serde_json::from_str(&json_str)?;
309312
310313---
311314
312- # Now it's our turn to have reflection !
315+ # Now it's our Turn to Have Reflection !
313316
314317<!-- TODO: maybe add a reference to one of Herb's talks -->
315318
0 commit comments