From d32f1c62054642dc24ea64c38e14c4e59f670d35 Mon Sep 17 00:00:00 2001 From: Oliver With Date: Tue, 10 Mar 2026 21:32:06 +0100 Subject: [PATCH] Rust vs. modern C++: Slices and Ternary --- blog/2026-03-10-rust-vs-cpp-1/images/cpp.png | Bin 0 -> 15468 bytes .../images/rustacean.png | Bin 0 -> 49537 bytes blog/2026-03-10-rust-vs-cpp-1/index.mdx | 219 ++++++++++++++++++ blog/authors.json | 15 +- blog/tags.yml | 23 ++ package-lock.json | 32 +-- static/img/authors/OliverWith.jpg | Bin 0 -> 40016 bytes 7 files changed, 257 insertions(+), 32 deletions(-) create mode 100644 blog/2026-03-10-rust-vs-cpp-1/images/cpp.png create mode 100644 blog/2026-03-10-rust-vs-cpp-1/images/rustacean.png create mode 100644 blog/2026-03-10-rust-vs-cpp-1/index.mdx create mode 100644 static/img/authors/OliverWith.jpg diff --git a/blog/2026-03-10-rust-vs-cpp-1/images/cpp.png b/blog/2026-03-10-rust-vs-cpp-1/images/cpp.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6b370a6b0dc2066034a62a43ea0be78981fdcd GIT binary patch literal 15468 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

o@gE)BAZ8@5`DW| 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 Tkwgd>0Fsta5U&(94EX;5J@8jh literal 0 HcmV?d00001 diff --git a/blog/2026-03-10-rust-vs-cpp-1/images/rustacean.png b/blog/2026-03-10-rust-vs-cpp-1/images/rustacean.png new file mode 100644 index 0000000000000000000000000000000000000000..866412dc60dda68a204978cb15726b22c28567d7 GIT binary patch literal 49537 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 F{{ZTl;J^R? literal 0 HcmV?d00001 diff --git a/blog/2026-03-10-rust-vs-cpp-1/index.mdx b/blog/2026-03-10-rust-vs-cpp-1/index.mdx new file mode 100644 index 0000000..cd5fa16 --- /dev/null +++ b/blog/2026-03-10-rust-vs-cpp-1/index.mdx @@ -0,0 +1,219 @@ +--- +title: "Rust vs C++" +description: "Rust trifft auf modernes C++: Ternary Twist" +authors: + - oliverwith +tags: [rust, c++] +image: ./images/rustacean.png +--- + + + +# Rust trifft auf modernes C++ + +*Oder: Wie zwei Entwickler entdecken, dass sie mehr gemeinsam haben als gedacht* + +Es ist Montagnachmittag in der Cafeteria. Sarah, frisch von einem Rust-Projekt zurück, trifft auf Marco, der gerade sein Legacy-Projekt auf C++20 portiert hat. Beide sind in bester Diskutierlaune. + +{/* truncate */} +--- + +## Der Ternary-Twist + +**Marco:** "Rust hat nicht mal einen Ternary-Operator! Den hat sogar C!" + +**Sarah:** "Brauchen wir auch nicht." + +```rust +// Rust: if ist eine Expression +let timeout = if temperature > 150 { 5000 } else { 100 }; +``` + +**Marco:** "Okay, schön. Wir haben das aber kürzer:" + +```cpp +// C++: Der klassische ternary +auto timeout = temperature > 150 ? 5000 : 100; +``` + +**Sarah:** "Und was machst du bei sowas?" + +```rust +let retries = match (production, critical) { + (true, true) => 5, + (true, false) => 3, + (false, _) => 1, +}; +``` + +**Marco:** "Äh... verschachtelte ternaries? Oder ein immediately invoked lambda?" + +```cpp +auto retries = [&]() { + if (production && critical) return 5; + if (production) return 3; + return 1; +}(); +``` + +**Sarah:** "Ein Lambda das du sofort aufrufst? Ernsthaft?" + +**Marco:** "Hey, C++ kann alles! Nur... manchmal etwas umständlich." + +### Fazit + +Der Ternary ist ganz nett für simple Fälle. Aber weil in Rust `if`-Statements Expressions sind, braucht es dieses Extrakonstrukt gar nicht. + + +### Exkurs: Expression vs. Statement in Rust + +**Der fundamentale Unterschied:** +- **Expression** = wird zu einem Wert ausgewertet (z.B. `5 + 3`, `if x { 10 } else { 20 }`) +- **Statement** = führt eine Aktion aus, hat keinen Wert (z.B. `let x = 5;`) + +**Die magische Rolle des Semikolons:** +```rust +// Expression: Gibt einen Wert zurück +let x = { + 5 + 3 // Kein Semikolon → Expression, ergibt 8 +}; + +// Statement: Gibt () zurück +let y = { + 5 + 3; // Mit Semikolon → Statement, y hat Typ () +}; +``` + +Salopp gesagt, degradiert in Rust das Semikolon eine Expression zum Statement. Deshalb funktioniert: +```rust +fn add(a: i32, b: i32) -> i32 { + a + b // Expression, wird zurückgegeben +} + +fn add(a: i32, b: i32) -> i32 { + a + b; // Statement, gibt () statt i32 zurück +} +``` + +Das ist auch der Grund, warum `if`, `match`, `loop` und sogar Blöcke `{}` in Rust Werte zurückgeben können – sie sind alle Expressions. In C++ sind das Statements, weshalb man ein Extrakonstrukt wie den ternary operator braucht. + + +--- + + +## Slices und Ranges – Elegant auf Teilstücke zugreifen + +**Sarah:** "Lass uns mal über Slices reden. Slices sind extrem praktisch, um einen Ausschnitt aus einer Datenstruktur auszuleihen." + +**Marco:** "Wir haben seit C++20 auch Ranges! Endlich lazy evaluation." + +**Sarah:** "Zeig mal." + +### Das Problem: Ein Teilstück eines Arrays verarbeiten + +Szenario: Wir haben einen Container, zum Beispiel einen Vektor mit Zahlen, und wollen nur einen Teil davon verarbeiten ohne eine Kopie des Containers zu erstellen. +Der Verarbeitungsschritt ist im Beispiel alle ungeraden Zahlen zwischen Index 2 und 7 aufsummieren + +### Rust: Slices + +Slices sind ein fix eingebautes Feature des Sprachumfangs von Rust + +```rust +fn main() { + let data = vec![1, 2, 3, 5, 7, 8, 11, 13, 16, 20]; + + // Slice: Nimm Elemente von Index 2 bis 7 (exklusiv) + let slice = &data[2..7]; + + // Summiere ungerade Zahlen + let sum: i32 = slice.iter() + .filter(|&&n| n % 2 != 0) + .sum(); + + println!("Summe der ungeraden: {}", sum); +} +``` + +**Sarah:** "Direkte Syntax: `&data[2..7]`. Fertig." + +### C++: Ranges oder Iteratoren + +```cpp +#include +#include +#include + +int main() { + std::vector data = {1, 2, 3, 5, 7, 8, 11, 13, 16, 20}; + + // Variante 1: Mit ranges (C++20, braucht -std=c++20) + auto slice_ranges = data | std::views::drop(2) | std::views::take(5); + auto odd_ranges = slice_ranges + | std::views::filter([](int n) { return n % 2 != 0; }); + + int sum_ranges = 0; + for (auto n : odd_ranges) { + sum_ranges += n; + } + std::cout << "Summe ungerade (ranges): " << sum_ranges << "\n"; + + // Variante 2: Mit klassischen Iteratoren + auto slice_begin = data.begin() + 2; + auto slice_end = data.begin() + 7; + + int sum_iter = 0; + for (auto it = slice_begin; it != slice_end; ++it) { + if (*it % 2 != 0) { + sum_iter += *it; + } + } + std::cout << "Summe ungerade (iteratoren): " << sum_iter << "\n"; +} +``` + +**Marco:** "Ranges funktionieren... aber ich muss `drop(2)` und `take(5)` kombinieren." + +**Sarah:** "Warum nicht einfach `data[2..7]`?" + +**Marco:** "Das geht nicht. Wir haben keine Slice-Syntax. Dafür kann ich zwischen Ranges und Iteratoren wählen!" + +### Der Unterschied + +**Sarah:** "Der Punkt ist: Slices sind bei Rust von Anfang an eingebaut. Teil der Sprache." + +```rust +// Verschiedene Slice-Notationen +&data[2..7] // Von 2 bis 7 (exklusiv) +&data[2..] // Von 2 bis Ende +&data[..7] // Von Anfang bis 7 (exklusiv) +&data[..] // Alles +``` + +**Marco:** "Bei uns kam das mit C++20 nach. Und es braucht `-std=c++20` als Compiler-Flag." + +**Sarah:** "Und `views::drop(2) | views::take(5)` ist nicht gerade intuitiv." + +**Marco:** "Stimmt. Aber immerhin haben wir's jetzt! Und C++ kann alles... nur manchmal etwas umständlich." + +### Lazy Evaluation + +**Sarah:** "Wenigstens sind beide lazy – kein Zwischenarray wird erstellt." + +**Marco:** "Ja! Das war ein großer Fortschritt. Früher mussten wir alles kopieren." + +**Sarah:** "Okay, C++ Ranges sind definitiv eine Verbesserung." + +### Fazit + +Beide Sprachen haben Konzepte für Teilstücke von Sequenzen: +- **Rust:** Native Slice-Syntax `&data[2..7]`, Teil der Sprache seit Tag 1 +- **C++:** Ranges seit C++20 (braucht `-std=c++20`), oder klassische Iteratoren + +**Der Unterschied:** Rust hat Slices von Grund auf eingebaut mit direkter, intuitiver Syntax. C++ hat Ranges nachgerüstet – funktioniert, aber mit umständlicherer Syntax (`drop`/`take` statt direkter Range-Notation). + +**Für Legacy-Code:** C++ kann auf Iteratoren zurückfallen, die seit Jahrzehnten existieren. + +### Code Samples zu Slices + +- [C++ Beispiel bei godbolt](https://godbolt.org/z/r55oc4dea) +- [Rust Beispiel im rustplayground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=a850df5a96c7391064a781b3514025f5) diff --git a/blog/authors.json b/blog/authors.json index 74b7f04..a91dc12 100644 --- a/blog/authors.json +++ b/blog/authors.json @@ -12,7 +12,7 @@ "github": "shpendke", "sessionize": "https://sessionize.com/shpendke" } - }, + }, "joachimjabs": { "name": "Joachim Jabs", "title": "Senior DevOps Engineer & Cloud Architect", @@ -21,5 +21,18 @@ "image": "", "imageURL": "/img/authors/JoachimJabs.jpg", "page": true + }, + "oliverwith": { + "name": "Oliver With", + "title": "Senior Software Engineer", + "description": "siebesiech", + "url": "https://www.linkedin.com/in/oliver-with/", + "imageURL": "/img/authors/OliverWith.jpg", + "page": true, + "image": "", + "socials": { + "linkedin": "oliver-with", + "github": "quattervals" + } } } diff --git a/blog/tags.yml b/blog/tags.yml index e69de29..4d192d0 100644 --- a/blog/tags.yml +++ b/blog/tags.yml @@ -0,0 +1,23 @@ +kubernetes: + label: Kubernetes + permalink: /kubernetes + +architecture: + label: Architecture + permalink: /architecture + +cloud-native: + label: Cloud Native + permalink: /cloud-native + +well-architected: + label: Well-Architected + permalink: /well-architected + +rust: + label: Rust + permalink: /rust + +c++: + label: C++ + permalink: /cpp diff --git a/package-lock.json b/package-lock.json index ac4254c..b212b59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -211,7 +211,6 @@ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.46.3.tgz", "integrity": "sha512-hfpCIukPuwkrlwsYfJEWdU5R5bduBHEq2uuPcqmgPgNq5MSjmiNIzRuzxGZZgiBKcre6gZT00DR7G1AFn//wiQ==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.46.3", "@algolia/requester-browser-xhr": "5.46.3", @@ -350,7 +349,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", @@ -2197,7 +2195,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -2220,7 +2217,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -2330,7 +2326,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2752,7 +2747,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3772,7 +3766,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", "license": "MIT", - "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -4548,7 +4541,6 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.0.tgz", "integrity": "sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -5036,7 +5028,6 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5658,7 +5649,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.8.tgz", "integrity": "sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -6015,7 +6005,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6101,7 +6090,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6147,7 +6135,6 @@ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.46.3.tgz", "integrity": "sha512-n/NdPglzmkcNYZfIT3Fo8pnDR/lKiK1kZ1Yaa315UoLyHymADhWw15+bzN5gBxrCA8KyeNu0JJD6mLtTov43lQ==", "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.12.3", "@algolia/client-abtesting": "5.46.3", @@ -6636,7 +6623,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -7649,7 +7635,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7969,7 +7954,6 @@ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.33.1.tgz", "integrity": "sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10" } @@ -8379,7 +8363,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -9557,7 +9540,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14148,7 +14130,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14726,7 +14707,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -15630,7 +15610,6 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16459,7 +16438,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -16469,7 +16447,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -16525,7 +16502,6 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", - "peer": true, "dependencies": { "@types/react": "*" }, @@ -16554,7 +16530,6 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -18384,8 +18359,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tsyringe": { "version": "4.10.0", @@ -18466,7 +18440,6 @@ "integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -18814,7 +18787,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -19075,7 +19047,6 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -19666,7 +19637,6 @@ "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/static/img/authors/OliverWith.jpg b/static/img/authors/OliverWith.jpg new file mode 100644 index 0000000000000000000000000000000000000000..432892e96c82beb30b431a486c5a361b6b2cff0f GIT binary patch literal 40016 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