...

Что за программа рантайм

Bun: новый рантайм для JavaScript

На днях произошёл релиз публичной беты. Давайте разберёмся, чем интересен Bun.

Что такое рантайм?

Среда выполнения/рантайм(runtime) в информатике — вычислительное окружение, необходимое для выполнения компьютерной программы и доступное во время выполнения компьютерной программы. В среде выполнения, как правило, невозможно изменение исходного текста программы, но может осуществляться доступ к переменным окружения операционной системы, таблицам объектов и модулей разделяемых библиотек.

Bun конкурирует с хорошо известными NodeJS и Deno.

Как позиционирует себя Bun:

. Bun это новый JavaScript рантайм с нативным сборщиком, транспайлером, исполнителем задач и встроенным npm клиентом.

Главное отличие от конкурентов – скорость. И вот почему:

  • Bun использует движок JavaScriptCore(который под капотом у Safari), который немного быстрее запускается и исполняет команды.
  • Bun написан на Zig, низкоуровневом языке программирования, в котором реализовано ручное управление памятью.
  • Автор Bun регулярно оптимизирует код.

Что умеет Bun

  • транспилирует JSX/TS код
  • поддерживает работу с npm
  • имеет встроенное API для таких модулей, как fetch, WebSocket, ReadableStreams.
  • Test Runner на подобие Jest, только быстрее
  • Http Server
  • Сборка приложения(бандлинг)
  • Остальное.

Пробуем

curl https://bun.sh/install | bash

Давайте напишем простой http server. Создаём файл http.js:

// http.js export default < port: 3000, fetch(request) < return new Response("Welcome to Bun!"); >, >;

Запускаем: bun run http.js

Проверяем, открыв в браузере http://localhost:3000

Итого

Так как это бета, то многие вещи не работают. Например, попробовав запустить mocha-тесты с моего NodeJS проекта выяснил, что:

  • не поддерживаются декораторы
  • не реализован встроенный модуль node:child_process

Есть список с тем, что пока не работает.

Можете попробовать вызвать bun install в своём проект и сравнить скорость установки пакетов в сравнении с npm/yarn

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

Думаю, что это будет хорошая альтернатива NodeJS/Deno/Babel/SWC/ESBuild/Vite/Webpack/Parcel/Mocha/Jest/TSC/(. ). Что думаете?

Рантайм: подробный обзор и руководство

Runtime – это среда выполнения программы или набор инструментов, которые позволяют выполнять программное обеспечение на компьютере. Она обеспечивает взаимодействие программ и устройств компьютера, предоставляет инструкции по управлению программами и ресурсами, необходимыми для их выполнения.

Основная функция runtime – обеспечить исполнение программного кода. Он выполняет код, который был написан на другом языке программирования, обеспечивая функции, такие как управление памятью, обработка исключений и управление потоками.

Также runtime отвечает за запуск приложений и разрешение конфликтов между различными программами. Он может работать как самостоятельно, так и вместе с другими приложениями и средами.

Пример кода на C#:

 using System; public class Program < public static void Main() < Console.WriteLine("Введите первое число: "); string num1String = Console.ReadLine(); int num1; if (Int32.TryParse(num1String, out num1)) < Console.WriteLine("Введите второе число: "); string num2String = Console.ReadLine(); int num2; if (Int32.TryParse(num2String, out num2)) < int sum = num1 + num2; Console.WriteLine("Сумма чисел равна: " + sum); >else < Console.WriteLine("Неверный формат второго числа!"); >> else < Console.WriteLine("Неверный формат первого числа!"); >> > 

Это простая программа, которая запрашивает у пользователя два числа, складывает их и выводит результат на экран. Здесь мы используем runtime для выполнения программы на языке C#. Если бы не было runtime, мы не смогли бы выполнить данный код на компьютере.

Си Рантайм: все, что нужно знать для стабильной работы программ на C

Кратко говоря, C Runtime (CRT) – это библиотека, которая предоставляет функции и инструменты для работы программ на языке C. CRT включает в себя функции для работы с файлами, строками, памятью, вводом-выводом и другие.

Основная цель CRT состоит в том, чтобы обеспечить удобный интерфейс для взаимодействия между операционной системой и программой на языке C.

Примеры функций из CRT:

  • printf() – функция для вывода текста в консоль
  • scanf() – функция для считывания ввода от пользователя
  • malloc() и free() – функции для выделения и освобождения памяти
  • fopen() и fclose() – функции для открытия и закрытия файла
  • memcpy() – функция для копирования памяти из одного места в другое

Примеры кода, использующего CRT:

printf(“Вы ввели: %s”, str);

В этом примере используются функции printf() и scanf() из CRT для вывода сообщения и считывания ввода пользователя.

ptr = (int*) malloc(3 * sizeof(int));

printf(“Ошибка выделения памяти”);

printf(“Элементы массива: %d %d %d”, ptr[0], ptr[1], ptr[2]);

В этом примере используются функции malloc() и free() из CRT для выделения и освобождения памяти, а также тип данных exit(), который является частью стандартной библиотеки языка С, но все же имеет некоторое отношение к CRT.

При подготовке материала использовались источники:
https://habr.com/ru/news/676102/
https://progery.ru/runtime
https://progery.ru/c-runtime

Добавить комментарий