{"schema_version":"1.0","service":"Publicasta","type":"article","id":119,"slug":"bun_rust_rewrite_ai_agents_tests_2026_07_10","title":"Rewrite Bun w Rust to nie tylko Rust kontra Zig","excerpt":"Bun zmienił migrację miliona linii w publiczny test AI-assisted open source engineering. Najważniejsza lekcja dotyczy testów, CI i ludzkiej odpowiedzialności.","language":"pl","default_language":"en","canonical_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl","image":{"url":"https://publicasta.com/storage/projects/10/pages/119/2026/07/59e940a3-24f6-438a-a939-38d10ec18c05.webp","alt":"Migracja open-source runtime prowadzona przez testy i CI"},"publisher":{"id":10,"slug":"open_source_radar","name":"Open Source Radar","url":"https://publicasta.com/open_source_radar"},"author":{"name":"Anton R"},"published_at":"2026-07-10T06:40:44+00:00","updated_at":"2026-07-10T06:40:44+00:00","content_markdown":"Przejście Bun z Zig na Rust byłoby dużą historią open source nawet bez AI. Bun to poważne narzędzie dla JavaScript i TypeScript: runtime, package manager, bundler, test runner i API zgodne z Node.\n\n ![Migracja open-source runtime prowadzona przez testy i CI](https://publicasta.com/storage/projects/10/pages/119/2026/07/59e940a3-24f6-438a-a939-38d10ec18c05.webp)\n\n Spór urósł dlatego, że sposób migracji był nietypowy. Jarred Sumner napisał 8 lipca, że Bun został przejęty przez Anthropic w grudniu 2025, zespół pracuje teraz w Anthropic, a pre-release Claude Fable 5 pomagał w dużej części portu na Rust. Dzień później Andrew Kelley, twórca Zig, odpowiedział ostrym tekstem. Dwa wątki na Hacker News zmieniły rewrite w debatę o językach, agentach AI, testach, pieniądzach i relacjach w open source.\n\n Prosta wersja brzmi: Rust pokonał Zig. To za mało. Ważniejsze pytanie brzmi: czy duży projekt infrastrukturalny może dziś zrobić migrację, którą kiedyś uznano by za prawie zakazaną, jeśli ma mocne testy, feedback kompilatora, CI, human review i dużo agent capacity?\n\n ## Co się zmieniło\n\n Bun zaczynał jako projekt w Zig. Sumner pisze wprost, że Zig umożliwił wczesny Bun. Potem zakres urósł: transpiler, minifier, bundler, npm-compatible package manager, test runner podobny do Jest, module resolution, HTTP/WebSocket client i Node APIs.\n\n Ten zakres dał wartość, ale też trudne błędy. Post Bun wymienia problemy w node:zlib, node:http2, UDP sockets, Buffer, TLS, fs.watch, CSS parser i JavaScriptCore. Wiele z nich to memory lifetime bugs: use-after-free, double-free, leaks i pominięty cleanup.\n\n Argument nie brzmi: Zig jest zły. Jest węższy: Bun działa na trudnej granicy JavaScriptCore GC, native resources, FFI, async callbacks i manual memory management. W takim miejscu przeniesienie większej części ownership do kompilatora ma sens.\n\n Rust nie czyni FFI bezpiecznym. Nie usuwa unsafe. Nie dowodzi, że testy obejmują wszystko. Ale może zamienić część lifetime bugs w compile-time work.\n\n ## Skala była nietypowa\n\n PR oven-sh/bun#30412 pokazuje konkret: tysiące commits, ponad dwa tysiące zmienionych plików i około milion additions. GitHub pokazuje teraz Rust jako główny język repozytorium.\n\n To nie weekendowy refactor. To migracja codebase.\n\n To nie był też zwykły ręczny rewrite. Sumner opisuje agent workflows, próbne przebiegi, compiler errors, test failures, adversarial review i poprawianie procesu, gdy agenty robiły złe rzeczy. Simon Willison nazwał to detailed case study in agentic engineering. Kluczowy element: TypeScript test suite Bun mogła działać jako conformance suite niezależna od języka implementacji.\n\n To najważniejsza lekcja. Agentom nie ufano dlatego, że są mądre. Były użyteczne, bo istniał zewnętrzny oracle: kompilacja, testy, porównanie zachowania, powtórka.\n\n ## Co to znaczy dla maintainers\n\n AI zmieniło ekonomię rewrite, nie odpowiedzialność. Ludzie projektowali migrację, czytali wyniki, poprawiali proces, decydowali o merge i ponoszą konsekwencje. Agenty zamieniły compiler errors i failed tests w równoległą kolejkę pracy.\n\n To nie czyni million-line rewrites bezpiecznymi. Sprawia, że dla kilku dobrze przygotowanych projektów stają się możliwe do rozważenia.\n\n Kopiować warto przygotowanie, nie rozmiar diffu: behavior tests, szybkie CI, performance baselines, fuzzing, małe próbne migracje, review procesu generującego kod i jasną ludzką odpowiedzialność.\n\n Zła lekcja brzmi: agenty mogą przepisać wszystko. Bez mocnych testów powstanie tylko większy bałagan szybciej.\n\n ## Ograniczenia zostają\n\n Rust redukuje część błędów, ale Bun nadal ma trudne granice: JavaScriptCore, native libraries, FFI, unsafe i runtime pełen callbacks. Issue PathString::slice i Miri pokazuje, że Rust-port dalej potrzebuje undefined-behavior checks i CI discipline.\n\n Testy też mają granice. Duża conformance suite jest cenna, ale nie dowodzi wszystkich edge cases runtime zgodnego z Node.\n\n Użytkownicy powinni sprawdzić release channel. Rust-port jest opisywany jako używany w Claude Code od v2.1.181, ale to nie znaczy, że każdy stable user Bun działa już na tej implementacji.\n\n ## Lekcja open source\n\n Bun nie dowodzi, że Rust wygrał z Zig. Nie dowodzi też, że AI może bezpiecznie przepisać dowolny projekt. Pokazuje nową kategorię wydarzenia open source: publiczną migrację infrastruktury wspieraną przez agentów, z testami i realnymi użytkownikami.\n\n Duże rewrites nadal są niebezpieczne. Zmienia się ich koszt. Projekty z conformance suites, zdyscyplinowanym CI i human review mogą próbować migracji kiedyś odrzucanych od razu. Bez tych podstaw powstanie tylko szybszy chaos.","available_translations":[{"language":"de","title":"Buns Rust-Rewrite ist mehr als Rust gegen Zig","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=de","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=de","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=de"},{"language":"en","title":"Bun’s Rust rewrite is not just a Rust versus Zig story","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=en","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=en","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=en"},{"language":"es","title":"El rewrite de Bun en Rust no es solo una historia de Rust contra Zig","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=es","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=es","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=es"},{"language":"fr","title":"Le rewrite de Bun en Rust ne se résume pas à Rust contre Zig","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=fr","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=fr","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=fr"},{"language":"pl","title":"Rewrite Bun w Rust to nie tylko Rust kontra Zig","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=pl","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl"},{"language":"ru","title":"Rust-rewrite Bun — это не просто спор Rust против Zig","html_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=ru","markdown_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=ru","json_url":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=ru"}],"_links":{"self":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=pl","api":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl","html":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl","canonical":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10?lang=pl","markdown":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.md?lang=pl","json":"https://publicasta.com/open_source_radar/bun_rust_rewrite_ai_agents_tests_2026_07_10.json?lang=pl","channel":"https://publicasta.com/api/public/v1/channels/open_source_radar","channel_articles":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}