Hacker News Digest

Тег: #bun

Постов: 3

Jules, remote coding agent from Google Labs, announces API (jules.google)

Jules — это ИИ-агент для автоматизации разработки, который теперь предлагает API для интеграции в рабочие процессы. С его помощью можно автоматизировать создание задач, исправление багов и внедрение фич через инструменты вроде Slack, Linear или Jira, а также встраивать в CI/CD-пайплайны GitHub Actions. Например, можно отправить запрос на создание сессии через cURL, указав промпт и контекст репозитория.

Кроме API, в обновлениях появилась поддержка командной строки, веб-серфинг, тестирование веб-приложений с визуализацией результатов, работа с обратной связью из PR, загрузка изображений и увеличение размера VM до 20 ГБ. Агент стал быстрее и надёжнее, добавлена критика кода, интерактивное планирование и поддержка Bun.

by watkajtys • 03 октября 2025 г. в 19:08 • 201 points

ОригиналHN

#llm#api#automation#github#github-actions#curl#slack#linear#jira#bun

Комментарии (66)

  • Перенос инфраструктуры на Railway и использование Jules для самостоятельного создания PR клиентом для мелких правок
  • Критика Jules как продукта Google: фрагментация предложений, опасения по поводу закрытости и возможного прекращения поддержки
  • Обсуждение различий между Jules, Claude Code, Copilot и другими агентами, их интеграций и безопасности
  • Сравнение моделей использования: асинхронные агенты vs. интерактивные инструменты в IDE, вопросы доверия и ROI
  • Критика антропоморфных названий продуктов и размышления о целесообразности разработки в личное время

Behind the scenes of Bun Install (bun.com) 🔥 Горячее

Как устроен bun install

  • Один бинарник — весь менеджер зависимостей живёт внутри Bun, нет внешних вызовов к npm, yarn, node-gyp.
  • Сишный движок — парсинг package.json, yarn.lock, node_modules происходит на Zig, без JS-оверхеда.
  • HTTP-пул + кэш — 50–100 параллельных потоков, кэш на диске + SQLite-индекс, повторный install — <100 мс.
  • Symlink-ферма — модули не копируются, а hard-link’ются из глобального кэша; экономия 70 % диска.
  • Муравьиный алгоритм — сначала скачиваются «листья» дерева зависимостей, потом родители; сеть греется максимально.
  • Платформенные пакеты — если в lock-файле есть запись под Linux, macOS и Windows, скачиваются сразу три архива и раскладываются в node_modules/.cache, при запуске выбирается нужный.
  • postinstall без shell — скрипты запускаются встроенным JS-движком, нет overhead’а на spawn bash/cmd.
  • Проверка целостности — каждый tarball сверяется по SHA256 из lock-файла, кэш защищён от подмены.
  • Мониторинг прогресса — терминал обновляется раз в 16 мс, рисуется ASCII-полоса и счётчик «пакетов/сек».
  • Фоллбек к npm — если пакет не найден в официальном реестре, Bun автоматом лезет в npm и кладёт tarball в кэш, пользователь не замечает разницы.

by Bogdanp • 11 сентября 2025 г. в 12:39 • 403 points

ОригиналHN

#bun#zig#npm#yarn#node.js#sqlite#http#package.json#node-modules

Комментарии (134)

  • Пользователи обсуждают статью о внутреннем устройстве и производительности менеджера пакетов Bun.
  • Многие хвалят скорость и простоту Bun, но отмечают проблемы совместимости с Node.js и стабильностью.
  • Часть комментаторов сомневается в практической пользе высокой скорости установки пакетов и считает переход с Node.js рискованным.
  • Упоминаются альтернативы — Deno, pnpm, npm — и сравнение с ними по скорости и надёжности.
  • Некоторые считают, что Bun не предлагает «убийственных» фич, чтобы оправдать переход с зрелой экосистемы Node.js.

Comptime.ts: compile-time expressions for TypeScript (comptime.js.org)

Простой компилятор TypeScript для вычисления выражений с пометкой comptime на этапе сборки. Полезно для переноса вычислений из рантайма в компиляцию. Вдохновлено Bun macros и Zig comptime.

Внимание: вы сами отвечаете за безопасность выражений, вычисляемых на этапе компиляции. Изоляции нет. Импорты comptime допускаются только в файлах проекта (не в node_modules), но можно импортировать из node_modules как comptime.

Содержание

  • Что такое comptime.ts?
  • Примеры: 1) простая сумма; 2) CSS без рантайма; 3) константы во время сборки
  • Установка
  • Использование: Vite, Bun, CLI, API
  • Принудительная оценка и промисы, отказ от «вирусности»
  • Запуск кода после comptime, как работает, ограничения, практики, отладка, поддержка, лицензия

Что это comptime.ts вычисляет выражения при компиляции, сокращая работу в рантайме.

Примеры

  1. Простая сумма import { sum } from "./sum.ts" with { type: "comptime" }; console.log(sum(1, 2)); // => console.log(3);

  2. Emotion CSS без рантайма import { css } from "@emotion/css" with { type: "comptime" }; const style = csscolor: red; font-size: 16px;; div({ class: style }); // => const style = "css-x2wxma"; div({ class: style });

Примечание: импорт @emotion/css удаляется. Стили нужно вывести отдельно (после comptime или плагином бандлера).

  1. Константы на этапе сборки import { ms } from "ms" with { type: "comptime" }; const HOUR = ms("1 hour"); // => const HOUR = 3600000;

Поддерживаются многие выражения (включая индексацию и импортированные константы), результат должен быть сериализуем в JSON. Импорты с type: "comptime" удаляются; лишнее убирает ваш бандлер.

Установка bun add comptime.ts pnpm add comptime.ts npm install comptime.ts

Использование

  • Vite: import { comptime } from "comptime.ts/vite"; export default defineConfig({ plugins: [comptime()] });

Только в прод-сборке, если поведение совпадает с рантаймом: export default defineConfig({ build: { rollupOptions: { plugins: [comptime()] } } });

  • Bun: import { comptime } from "comptime.ts/bun"; await Bun.build({ entrypoints: ["./index.ts"], ou ... })

by excalo • 03 августа 2025 г. в 19:11 • 139 points

ОригиналHN

#typescript#compilation#vite#bun#zig#macros

Комментарии (30)

  • Обсуждение крутится вокруг идеи “comptime”/макросов в JS: часть хочет Rust‑подобные макросы и proc‑макросы (вплоть до JSX как jsx! или вообще писать фронт на Rust/wasm), другая сторона категорически против макросов в TS/JS.
  • Есть путаница в терминах: “макросы” vs “comptime”; участники критикуют переиспользование терминов и вспоминают неудачный опыт sweet.js.
  • Практические вопросы: можно ли делать агрессивный dead‑code elimination через if (comptime …) как в C препроцессоре? Ответ: само comptime подставит true/false, но для выкидывания веток нужен отдельный шаг минификатора/бандлера (Vite/Bun поддержат).
  • Дискуссия об импорте with { type: 'comptime' }: одни считают это неправильным использованием атрибута type (ожидается соответствие MIME), другие указывают, что спецификация оставляет семантику type открытой.
  • Обсуждают границы возможности: поддержка типов/генериков на уровне comptime (как в Zig) пока ограничена; возврат именованных функций и сложные случаи с замыканиями не поддерживаются из‑за требований к гарантиям и сохранению функций между процессами.
  • Альтернативы: настроить сборку для JSX без макросов; использовать библиотеки вроде lite-jsx; для Rust‑фронта рекомендуют Dioxus/Leptos; спорят о реальной применимости wasm и памяти/управления ей в вебе.
  • Применимость: идея удобна для предсборки (например, markdown) и константной подстановки, но не заменяет полноценных препроцессоров/макросистем уровня Rust/Zig.