LINUX.ORG.RU

Bun v1.1.30

 bun, , , ,

Bun v1.1.30

0

2

Тихо и незаметно была опубликована новая стабильная версия Bun – 1.1.30.

Bun – это среда выполнения ECMAScript / JavaScript, по многим параметрам аналогичная nodejs. В основе Bun используется JavaScriptCore от Apple, но сам Bun как и многие его модули написан на языке zig. Bun старается быть максимально совместимым с nodejs по опциям командной строки, поддерживает модули ECMAScript (ESM) и CommonJS. Управление пакетами npm и поддержка typescript встроены прямо в приложение как нативный код, и программы на typescript могут исполняться на прямую интерпретатором без предварительной конфигурации.

Однако Bun не является лишь «копией» nodejs по своим возможностям. Помимо более быстрой работы в ряде сценариев (начиная прямо с запуска приложения) и почти полной поддержки доступного в nodejs API, Bun предоставляет широкие возможности для приложений на сервере – от работы с файлами до трансформации HTML-дерева (HTMLRewriter), модулем транспиляции typescript (Bun.Transpiler), встроенной работе с базами данных sqlite, модулей для взаимодействия с нативными библиотеками платформы через API яызка Си – ffi, встроенный инструментарий тестирования и множество других возможностей.

Кроме того, в экспериментальном режиме Bun поддерживает интеграцию с кодом на Си через прозрачный вызов tcc:

hello.c:

	int hello()
	{
	  return 42;
	}

hello.js:

	import { cc } from "bun:ffi";
	import source from "./hello.c" with { type: "file" };

	const {
	  symbols: { hello },
	} = cc({
	  source,
	  symbols: {
	    hello: {
	      args: [],
	      returns: "int",
	    },
	  },
	});

	console.log("What is the answer to the universe?", hello());


$ bun hello.js
What is the answer to the universe? 42

В этом релизе среди прочего был добавлен парсер CSS на основе LightningCSS который специально для этого был переписан с таких legacy-технологий как rust на zig, что позволило прозрачно интегрировать css и typescript, и теперь можно импортировать css-файл напрямую в модуль typescript:

index.ts:
	import "./style.css";
	import Component from "./MyComponent.tsx";

	// ... rest of your app

style.css:
	/* результат сборки: */
	/* style.css */
	.hello {
	  background: red;
	}

	/* MyComponent.css */
	.MyComponent {
	  color: green;
	}

Bun позволяет собрать всё приложение со всеми ресурсами в единый исполняемый файл.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Rust уже легаси? Приятно, даже не пришлось учить.

mak8kammerer
()

Тихо и незаметно была опубликована новая стабильная версия очередного жабаскриптового ненужно.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

Тебе не нужно, вот и проходи мимо. Между прочим, это лучшее, что случалось с джаваскриптом. Для девопсов и деплоинга штука агонь.

Gonzo ★★★★★
()
Ответ на: комментарий от goingUp

node vs deno vs bun?

Шо то г, шо это г.

Имеет ли смысл переходить с ноды?

Конечно имеет, на что-нить адекватное, а не другой жабоскрипт.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

на что-нить адекватное

Вот когда критикуешь что-то, самое главное не называть альтернативу, ибо обосрут еще больше)

goingUp ★★★★★
()
Ответ на: комментарий от ya-betmen

Конечно имеет, на что-нить адекватное, а не другой жабоскрипт.

ну давай так. Ты умеешь в TS? Какие у него сильные и слабые стороны?

Раз тебе намекнули, но ты продолжаешь, так и быть, мы не будем назвать тебя тупым самовлюблённым лохом, если ты озвучишь чильные и слабые стороны TS, ведь Bun имеет встроенную подержку ‘а не другой жабоскрипт.’

Eulenspiegel
()
Ответ на: комментарий от goingUp

Какие ещё альтернативы? Этот народ думает, что ЖС это такие скриптики в браузере, которые они режут васянскими плагинами, чтобы их кор2дуо не так адски тормозил. Там уровень сознания именно такой.

Clayman ★★
()
Румынский |     Русский
----------|------------------
bun e bun | хорошо это хорошо
futurama ★★★★★
()
Ответ на: комментарий от goingUp

Свежий Deno имеет прослойку совместимости с Node и NPM, как я понял теперь куда удобней. А Bun пока как был экспериментальной альтернативой, так и остаётся.

ac130kz ★★
()
Ответ на: комментарий от goingUp

На bun или deno - однозначно стоит если проект активно развивается/поддерживается. Если не активно то можно точечно оптимизировать стэк, например npm заменить на pnpm, CRA на Vite (если фронт).

Между bun и deno ИМХО первый для замены node.js в существующем проекте (у меня на bun получилось перейти просто заменив npm на bun install), второй для начала нового (потому что весь тулинг уже встроен и можно сразу писать код и деплоить).

WSL_user
()
Ответ на: комментарий от Clayman

кор2дуо не так адски тормозил

кор2дуо ващето вытягивает декодирование FullHD. Это довольно приличный камень.

LamerOk ★★★★★
() автор топика
Ответ на: комментарий от WSL_user

второй для начала нового (потому что весь тулинг уже встроен и можно сразу писать код и деплоить).

А чего нехватает bun’у?

LamerOk ★★★★★
() автор топика

Называется «булочка», на картинке - хинкали. Ну да ладно, главное, что аналитики ЛОРа одобряют. Ничего не имею против JS на сервере.

Vidrele ★★★
()

async/await там как реализован?

splinter ★★★★★
()
Ответ на: комментарий от Eulenspiegel

ну давай так.

Давай так, ты не пытаешься сказать, что между жабоскриптом и типоскриптом есть принципиальная разница, а мы не называем тебя вебмакакой, не умеющий в программирование.

ya-betmen ★★★★★
()
Ответ на: комментарий от goingUp

Что скажут лоровцы по поводу node vs deno vs bun?

Теорема Эскобара.

Имеет ли смысл переходить с ноды?

Имеет смысл переходить на Go/Rust. Если что, понятно, что нода не язык)

th3m3 ★★★★★
()
Ответ на: комментарий от Gonzo

Для девопсов и деплоинга штука агонь.

Впервые слышу, чтобы девопсы упарывались js. Девопсы курильщика какие-то.

th3m3 ★★★★★
()

но сам Bun как и многие его модули написан на языке zig.

Получается какой-то zig bun!

Smacker ★★★★★
()

Название шикарное конечно, банан - как раз то, что нужно жопоскриптеру.

bread
()
Ответ на: комментарий от goingUp

самое главное не называть альтернативу

Так подробностей-то нет, вдруг у тебя просто домашняя страничка на ноде и можно на энжиникс переехать.

ya-betmen ★★★★★
()

переписан с таких legacy-технологий как rust на zig

Зачотный наброс в новостях.

bread
()
Ответ на: комментарий от LamerOk

deno fmt, deno lint из того что приходит в голову. Очень неприятно настраивать eslint и ждать линт в CI занимающий почти половину времени сборки. Prettier не так плох, но также не быстр.

WSL_user
()

Господь, жги - здесь уже ничего не исправить!

BydymTydym
()

Иконка прикольная! Всё остальное прошло мимо меня :(

Old-Cat
()
Ответ на: комментарий от ya-betmen

Давай так, ты не пытаешься сказать, что между жабоскриптом и типоскриптом есть принципиальная разница, а мы не называем тебя вебмакакой, не умеющий в программирование.

Принял подачу. Я могу себя назвать Space monkey, чё нет? А вот ты расписался, петушок, в своём профессионализме. Теперь ты самовлюблённый лошок-петушок.

Eulenspiegel
()
Ответ на: комментарий от Eulenspiegel

Спейс тут ни при чём. Не расстраивайся ты так.

ya-betmen ★★★★★
()

написан на языке zig

Моё почтение

shalom_ ★★
()
Ответ на: комментарий от goingUp

Я deno щупал, на bun смотрел. Мой вердикт - не нужно. У меня есть небольшой проект на deno, я задолбался его переписывать каждые полгода, постоянно что-то ломают. Нода просто решает все задачи, которые стоят перед серверным жаваскриптом, при этом она уже лет 10 как стабильна. Просто нет никакой причины смотреть куда-то ещё. Больше пользоваться этими проектами не планирую.

PS кстати ровно то же могу сказать про zig. Rust хотя бы привносит в индустрию систему типов, решающую ряд практических проблем. Зачем нужен zig - для меня загадка. Если ты профессионал, ты пишешь на C++. Если тебе надо по-быстрому написать что-то быстрое, не мороча голову, ты пишешь на C. Если ты хочешь что-то супер-модерновое - ты пишешь на Rust. Какие причины могут побудить писать человека на Zig я не понимаю просто совсем. Просто по приколу - без вопросов, но за деньги - нет.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.