Сообщество JavaScript богато творчеством и быстро растет.

Это семь свежих проектов JavaScript, о которых вы, возможно, не слышали.

Эти инструменты и платформы предоставляют широкий спектр функций или дают представление о будущих тенденциях развития JavaScript.

Примерами являются разработка нативных приложений, строго типизированная разработка с полным стеком, встроенная альтернатива Node.js во время выполнения, графика в браузере и другие функции.

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

Помните, вы впервые услышали о них здесь!

Tauri — JavaScript Framework для настольных компьютеров

Tauri — это десктопный фреймворк для разработки приложений, написанных на JavaScript.

Может быть, слово «метафреймворк» куда больше подходит.

Он позволяет использовать любую интерфейсную веб-инфраструктуру, такую ​​как React или Svelte, для создания кроссплатформенного «богатого» клиента.

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

Tauri призван сделать процесс разработки приложений более плавным.

Если кто-то интересуется разработкой приложений, он может столкнуться с Tauri.

Таури, например, создает программы для Mac, Windows и Linux.

Этим летом мы выпустим стабильную версию 2.0 с поддержкой iOS и Android. Фреймворк JavaScript для ПК.

Tauri — это десктопный фреймворк для разработки приложений, написанных на JavaScript.

Может быть, слово «метафреймворк» куда больше подходит.

Он позволяет использовать любую интерфейсную веб-инфраструктуру, такую ​​как React или Svelte, для создания кроссплатформенного «богатого» клиента.

Процесс разработки Tauri довольно примечателен.

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

Tauri может обрабатывать любой стек, который в конечном итоге приводит к JavaScript и HTML.

Он присоединяется к серверу разработки и генерирует собственный настольный клиент по ходу работы.

Денджелл описывает процесс разработки в следующих терминах:

  • Создайте сервер разработки, используя Svelte, Solid.js, React, Vue и т. д.
  • Настройте tauri.conf для прослушивания этого порта.
  • Запустите окно разработки Tauri.

Несмотря на то, что код Таури разработан и написан на Rust, разработчики взаимодействуют с API, которые почти полностью написаны на JavaScript.

Tauri — это привлекательный способ разработки собственных настольных приложений для разработчиков JavaScript.

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



tRPC — разработка TypeScript API

tRPC — интересный способ создания API на основе TypeScript.

Хотя он относится к тому же семейству технологий, что и GraphQL, tRPC отличается тем, что автоматизирует взаимодействие между внешним и внутренним кодом.

Он также обладает сверхспособностями благодаря способности TypeScript обеспечивать тип.

Алекса Йоханссона, создателя tRPC, спросили, зачем он его построил.

«Я давно являюсь поклонником GraphQL (и до сих пор им являюсь), но мне часто кажется, что он замедляет меня при разработке моих продуктов — я использовал TypeScript с обеих сторон.

Почему я не могу просто использовать сам язык без импорта внешней схемы?»

Сверхспособность tRPC заключается в его способности извлекать выгоду из существующих систем, чтобы обеспечить проверку типов и подключение по всему стеку.

Он допускает два типа вывода без использования метаданных или дополнительного шага сборки для подключения определений API к потребляющему коду.

Я испытал чувство ясности, наводящее на размышления о гениальности, когда понял, что такое tRPC.

Вот живое полнофункциональное приложение React, созданное с помощью StackBlitz командой tRPC.

Конечные точки предоставляются tRPC, а установка довольно проста, требуется всего несколько файлов.

Упрощение отличное.

Опубликованные конечные точки в примере StackBlitz управляют информацией, доступной для IDE.

Например, во внешнем интерфейсе переменная результата генерируется с помощью пользовательского хука tRPC useQuery, например: const result = trpc.greeting.useQuery({ name: ‘client’ });.

Маршрутизатор tRPC обрабатывает это на серверной части.

Свойство впоследствии может использоваться внешним интерфейсом следующим образом: result.data.text.

IDE (и процесс компиляции TypeScript) полностью знает определение типа result.data и может предложить его.

Точно так же конечная точка маршрутизатора tRPC знает о внешнем интерфейсе, таком как параметр запроса.

В целом, tRPC — это уникальный и интересный способ создания полнофункциональных приложений TypeScript.

Он набирает популярность в сообществе разработчиков, на момент написания этой статьи на GitHub было около 22 000+ звезд.



Bun.js — более быстрая среда выполнения JavaScript

Bun.js — восходящая звезда JavaScript, поскольку он охватывает несколько направлений в одном пакете.

Джарред Самнер, дизайнер фреймворка, рассказал мне о своих мотивах и целях для Бана.

«Bun — это сборщик JavaScript/TypeScript, транспилятор, управление пакетами NPM и среда выполнения JS — все в одном.

Мы хотим, чтобы JavaScript работал быстрее и его было проще писать.

Соответствие экосистемы является важным фактором в этом. Bun предназначен для замены Node.js.

Бан не должен нуждаться в том, чтобы люди меняли свой код.

Bun поддерживает многие API-интерфейсы Node.js, такие как собственный API-интерфейс Node (NAPI), fs, путь, процесс и многое другое (хотя мы в настоящее время работаем над этим)».

Bun — это замена таких сред выполнения, как Node.js и Deno, а также замена дополнительных инструментов, таких как webpack, Vite и Babel.

Он быстро становится известным благодаря своей экстремальной скорости при использовании в качестве замены npm install или yarn install.

Преимущество Бана в производительности связано с переносом большей части кода с JavaScript на низкоуровневые Zig и C++.

Быстрая обработка Bun и подход «все в одном» делают его привлекательной заменой традиционным стекам для внутреннего серверного JavaScript.

Разработчики тоже начинают обращать на это внимание: на данный момент фреймворк набрал 39 000+ звезд на GitHub.



Civet — современный фреймворк TypeScript

Что, если вы объедините TypeScript с некоторыми концепциями CoffeeScript, а также некоторыми другими формальностями?

Например, Civet — это фреймворк, предназначенный для упрощения и повышения эффективности создания кода TypeScript.

Ходит миф, что Civet — это новый CoffeeScript, но, возможно, это и хорошо, — говорит основатель Civet Дэниел Мур.

Классы, деструктуризация, асинхронность/ожидание, стрелочные функции, остаточные параметры и другие функции были добавлены в официальный стандарт JavaScript компанией CoffeeScript».

Civet, как ни странно, не только поддерживает TypeScript; он также использует JSX.

Как отметил Эрик Демейн (разработчик проекта, реализовавший большинство изменений JSX):

Civet дополняет эти концепции, добавляя более востребованные языковые функции (такие как оператор конвейера, множество улучшений JSX и, вскоре, переключатель сопоставления с образцом) и строит поверх (транспирируется) TypeScript, что делает его очень совместимым. с текущими инструментами.

В листинге 1 показан простой пример работы Civet (взято из документации Civet).

В листинге 1 показана простая циветта

// Civet syntax
i .= 0
loop
  i++
  break if i > 5

// TS output
let i = 0;
while (true) {
  i++;
  if (i > 5) {
    break;
  }
}

Помните, что Civet также может работать с JSX!

Синтаксис циклов в JSX всегда казался мне странным, но Civet упрощает его. (Дополнительную информацию см. в шпаргалке Civet.)



Табби — Терминал Node.js

Должен признаться в давней любви к консолям и оболочкам.

Это было со мной с тех пор, как я открыл для себя скрытый мир игр Commodore 64 и смог закинуть кишки BASIC на консоль.

Tabby — это оконный полнофункциональный кроссплатформенный терминал, который заменяет родные приложения, такие как cmd, PowerShell и Terminal. Он также поддерживает SSH, например Putty, и SFTP, например WinSCP.

Евгений, создатель Тэбби, объяснил, почему он решил разработать новую терминальную программу.

«Я начал [Tabby] из-за разочарования в Hyper (еще одна программа-терминал на основе Electron) и общего недовольства тем, что другие приложения застряли в 90-х (небольшие бумажные проблемы, такие как Alt-стрелки, не работающие для обхода слов, которые быстро складываются).

Еще одним источником вдохновения стал VS Code, программа, игнорирующая правила в попытке улучшить общий опыт.

Моя цель — расширить сообщество и когда-нибудь переработать [Tabby], чтобы использовать Tauri, а не Electron, чтобы уменьшить размер и повысить производительность».

Цвета, специальная обработка клавиш и копирование/вставка — все это предоставляется Tabby на платформе, настройки которой одинаковы.



Pixi.js — высокопроизводительная графика на JavaScript

Зайдите на Pixijs.com и посмотрите, что происходит, когда вы наводите курсор на фоновое изображение.

Присутствует дорогой на вид жидкий эффект, но, похоже, он не оказывает существенного влияния на производительность.

Как они это делают? Конечно, с помощью библиотеки Pixi.js!

Pixi предлагает быстрый и сложный API для новых приложений, использующих WebGL и HTML5 Canvas.

Pixi существует уже давно и превратилась в зрелую, заслуживающую доверия библиотеку.

Пакет NPM можно найти здесь.

Хотя Pixi.js выглядит созданным для игр в браузере, его можно использовать везде, где вам требуются высокопроизводительные визуальные эффекты, такие как диаграммы и красивые эффекты в целом.

Но имейте в виду, что он предназначен для 2D, а не для 3D.

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

С Пикси можно играть на онлайн-площадке Пикси.



PM2 — Мониторинг приложений Node.js

PM2 — это не библиотека JavaScript, а скорее системно-ориентированный инструмент, созданный с помощью JavaScript.

Это комплексный и эффективный инструмент мониторинга, который можно использовать из командной строки для комплексного мониторинга и управления процессами.

В Unix есть инструменты для мониторинга и управления, такие как bg/fg, nohup и screen, но PM2 делает все и даже больше в удобном для пользователя пакете.

PM2 включает в себя множество вариантов перезапуска, чтобы справиться практически с любыми условиями.

Запуск на основе времени CRON, автоматический перезапуск, при остановке и запуск при выполнении условия (например, использования памяти) — вот некоторые примеры. У него есть флаг — watch для перезапуска при изменении файла.

Если вам нужен инструмент для некоторых требований управления процессами Node.js, стоит взглянуть на PM2.



Это пока все; Увидимся в моем следующем посте.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.