[Перевод] 9 open source библиотек для вашего следующего проекта

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

В этой статье я расскажу о 9 библиотеках с открытым исходным кодом, которые улучшат ваш будущий проект.

Поехали!

1. Crawlee — Веб-скрейпинг, упрощённый и мощный

Crawlee

Crawlee — это полноценная библиотека для веб‑скрейпинга и автоматизации браузера, которая помогает быстро и эффективно создавать надёжных краулеров.

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

Будь то Node.js или Python, Crawlee предоставляет унифицированный интерфейс для HTTP‑краулинга и краулинга с использованием безголовых браузеров, делая его универсальным инструментом для всех видов задач веб‑скрейпинга.

Больше можно узнать в обзорном видео:

Проще всего начать использовать Crawlee поможет CLI‑интерфейс. Выполните следующую команду:

npx crawlee create my-crawler

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

Чтобы добавить Crawlee в свой проект, выполните команду:

npm install crawlee playwright

А теперь приведём небольшой пример:

import { PlaywrightCrawler } from 'crawlee';

// PlaywrightCrawler обходит сайты с использованием безголового браузера, управляемого библиотекой Playwright.
const crawler = new PlaywrightCrawler({
    // Используйте requestHandler для обработки каждой из посещённых страниц.
    async requestHandler({ request, page, enqueueLinks, pushData, log }) {
        const title = await page.title();
        log.info(`Заголовок страницы ${request.loadedUrl}: '${title}'`);

        // Сохранение результатов в формате JSON в директорию `./storage/datasets/default`.
        await pushData({ title, url: request.loadedUrl });

        // Извлечение ссылок с текущей страницы и добавление их в очередь для обхода.
        await enqueueLinks();
    },

    // Раскомментируйте этот параметр, чтобы увидеть окно браузера.
    // headless: false,

    // Закомментируйте этот параметр, чтобы обойти весь сайт.
    maxRequestsPerCrawl: 20,
});

// Добавляем первый URL в очередь и запускаем обход.
await crawler.run(['https://crawlee.dev']);

// Экспортируем весь набор данных в один файл `./result.csv`.
await crawler.exportData('./result.csv');

// Или работаем с данными напрямую.
const data = await crawler.getData();
console.table(data.items);

Здесь он обходит страницы, извлекает данные и добавляет ссылки в очередь. Подробнее можно узнать в документации.

Кроме того, я создал скрейпер вакансий для LinkedIn на Python с использованием Crawlee (об этом написал в отдельной статье).

У Crawlee более 15 тысяч звёзд на GitHub и более 110 релизов, что говорит о том, что библиотека постоянно развивается и совершенствуется.

2. Encore — Бэкенд-фреймворк для типобезопасных приложений

Encore

Управление облачными сервисами для масштабируемых приложений — задача непростая. Часто она превращается в хаос с излишне сложным управлением инфраструктурой, несогласованными API и разрозненными DevOps‑процессами.

Encore упрощает этот процесс, предоставляя единую платформу разработки, которая включает типобезопасные бэкенд‑фреймворки, автоматическое предоставление инфраструктуры и автоматизацию DevOps.

Encore доступен как на Golang, так и на TypeScript. Подробнее — в обзорном видео:

С помощью Encore можно создавать готовые к продакшену бэкенды, используя такие примитивы, как микросервисы, Postgres и Pub/Sub, без привычной сложности и работы DevOps.

Чтобы начать работу с Encore, установите CLI:

curl ‑L https://encore.dev/install.sh | bash

Затем создайте приложение с помощью Encore CLI:

encore app create

Это настроит вашу бесплатную учётную запись, позволит выбрать имя для вашего приложения и использовать шаблон Hello World.

После этого будет создан пример приложения с простым REST API в новой папке, названной в соответствии с именем приложения.

Откройте файл в редакторе и перейдите в your‑app‑name/hello/hello.ts:

import { api } from "encore.dev/api";

export const world = api(
  { method: "GET", path: "/hello/:name", expose: true },
  async ({ name }: { name: string }): Promise => {
    return { message: `Hello ${name}!` };
  },
);

interface Response {
  message: string;
}

Здесь мы определили конечную точку API, обернув обычную асинхронную функцию с помощью вызова api.

Encore автоматически обрабатывает аутентификацию, маршрутизацию HTTP‑запросов, валидацию запросов, обработку ошибок, наблюдаемость, документацию API и многое другое.

Чтобы узнать подробнее, обратитесь к документации. Также присоединяйтесь к их сообществу на Discord, чтобы быть в курсе обновлений.

Encore на GitHub.

3. Taipy — Создание AI‑веб‑приложений на Python

Taipy

Вы когда‑нибудь хотели создать простой AI‑проект, не усложняя его использованием фреймворков для фронтенда?

Если да, то вам подойдёт этот инструмент.

Taipy — это библиотека с открытым исходным кодом для быстрого создания готовых к продакшену AI‑приложений на Python. Она позволяет быстро переходить от простых прототипов к полноценным веб‑приложениям.

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

Taipy Features

Taipy отлично справляется с управлением сложными рабочими процессами, предоставляя узлы для их эффективной обработки. Библиотека также интегрируется с pandas, что позволяет напрямую работать с данными в проекте.

Для быстрого старта установите Taipy, выполнив команду:

pip install taipy

Можно создать графический интерфейс, используя следующий код на Taipy:

from taipy.gui import Gui
import taipy.gui.builder as tgb
from math import cos, exp

value = 10

def compute_data(decay:int)->list:
    return [cos(i/6) * exp(-i*decay/600) for i in range(100)]

def slider_moved(state):
    state.data = compute_data(state.value)

with tgb.Page() as page:
    tgb.text(value="# Taipy Getting Started", mode="md")
    tgb.text(value="Value: {value}")
    tgb.slider(value="{value}", on_change=slider_moved)
    tgb.chart(data="{data}")

data = compute_data(value)

if __name__ == "__main__":
    Gui(page=page).run(title="Dynamic chart")

Подробнее можно узнать в документации.

Taipy на GitHub.

4. KitOps — Гибкое управление AI‑моделями

KitOps

KitOps — это инструмент с открытым исходным кодом, созданный для унификации работы дата‑сайентистов, разработчиков и SRE над AI/ML‑моделями, исходным кодом, датасетами и другими артефактами.

KitOps выводит управление AI/ML‑моделями на новый уровень гибкости и эффективности. Он трансформирует подход к упаковке, версионированию и развёртыванию ресурсов, используя стандарты OCI для максимальной совместимости и сотрудничества.

Библиотека предлагает ряд мощных функций:

  • Упаковка моделей, датасетов, конфигураций и кода в совместимые с OCI ModelKits для простого версионирования.

  • Совместимость с любым OCI‑совместимым реестром для гибкости в AI/ML‑проектах.

  • Конфигурации на основе YAML для тонкой настройки LLM и создания RAG‑конвейеров.

Изучите документацию, чтобы понять, почему KitOps становится обязательным инструментом в рабочих AI/ML‑процессах.

KitOps Features

KitOps также обеспечивает гибкое управление моделями, датасетами и кодом через любой OCI‑совместимый реестр. Это делает его идеальным выбором для разработчиков и MLOps‑команд, работающих как над небольшими проектами, так и над крупными корпоративными AI‑приложениями.

  • Упаковывайте и версионируйте модели, датасеты и код, используя стандарты OCI.

  • Автоматизируйте развёртывание и тестирование моделей.

  • Отслеживайте происхождение и защищайте модельные артефакты с помощью подписания артефактов.

  • Интегрируйтесь без проблем с существующими CI/CD‑процессами.

KitOps на GitHub

5. CopilotKit — Лёгкое создание AI‑агентов внутри приложения

CopilotKit

CopilotKit — вероятно, самый простой и эффективный способ добавить искусственный интеллект в приложение.

CopilotKit — это ведущий, надёжный и простой в использовании фреймворк с открытым исходным кодом для создания AI‑помощников внутри приложений. Вы можете создавать встроенных AI‑чат‑ботов и AI‑агентов, используя простые компоненты, предоставляемые CopilotKit.

Некоторые из ключевых его функций:

  • AI‑чат‑бот внутри приложения: Добавьте AI‑чат‑бота в своё приложение с помощью простых компонентов plug‑and‑play, включая поддержку headless UI.

  • Copilot Readable State: Эта функция позволяет AI‑помощникам получать доступ к состоянию приложения и интерпретировать его, делая AI‑ассистента более контекстно‑осведомлённым и отзывчивым.

  • Copilot Actions: Даёт возможность AI‑помощникам выполнять задачи и совершать действия напрямую в приложении на основе ввода пользователя и контекста приложения.

CopilotKit также предоставляет встроенные (и полностью настраиваемые) UX‑компоненты, такие как , , , .

Gif

Если вы когда‑либо пробовали интегрировать агентов в своё React‑приложение, вы знаете, сколько времени может отнимать этот процесс.

CopilotKit недавно запустил Co‑Agents для решения этой проблемы.

Co‑Agents — это мощный набор инструментов для создания приложений с нативной поддержкой агентов на базе LangGraph. Они разработаны, чтобы глубоко интегрировать агентов LangGraph в React‑приложения, расширяя границы возможного для UX, ориентированного на искусственный интеллект.

Чтобы узнать больше о возможностях Co‑Agents, посмотрите видео:

Я также создал приложение для планирования, использующее искусственный интеллект, с помощью CopilotKit. Вы можете ознакомиться с ним здесь:

6. Tolgee — Веб‑платформа для локализации

Tolgee

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

Именно здесь на помощь приходит Tolgee.

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

Она идеально подходит для веб‑, мобильных и даже настольных приложений, спроектированных с учётом потребностей разработчиков, чтобы упростить процесс локализации от начала до конца.

Tolgee integrations

Её возможности включают:

  • Перевод в контексте: Просматривайте переводы точно так, как они будут отображаться в вашем приложении.

  • Управление и отслеживание ключей перевода: Экономьте время, поддерживая порядок в ваших ключах локализации.

  • Настройка ролей и разрешений: Контролируйте доступ для более эффективной совместной работы.

  • Расширяемость с помощью плагинов: Легко интегрируйте Tolgee с дополнительными инструментами и сервисами по мере необходимости.

Tolgee также предоставляет SDK, REST API и CLI для упрощения локализации в средах JavaScript, мобильных устройствах и на серверной части.

Tolgee на GitHub.

7. OPAL — Административный уровень для Policy Engine

OPAL

OPAL — это административный слой с открытым исходным кодом, созданный для работы с механизмами политик, такими как Open Policy Agent (OPA) и AWS Cedar.

Если вы работаете над крупными проектами с сложными контролями доступа, OPAL поможет упростить управление разрешениями для команд или групп пользователей.

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

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

OPAL Flow

Некоторые ключевые функции и сценарии использования OPAL:

  • Обновления разрешений в реальном времени: OPAL автоматически предоставляет или отзывает разрешения в реальном времени, устраняя необходимость в ручных обновлениях доступа в приложениях.

  • Политика как код: Разработчики могут писать политики как код, что упрощает их версионирование, обзор и управление для единообразного подхода к обработке политик.

  • Облачная интеграция: OPAL легко интегрируется с облачными микросервисами, такими как AWS или Kubernetes, упрощая безопасные и автоматизированные обновления политик.

  • Тонкая настройка авторизации: OPAL поддерживает точную, сквозную авторизацию и совместим с несколькими языками политик и децентрализованными источниками данных, что делает его идеальным для сложных распределённых систем.

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

OPAL на GitHub.

8. ChartDB — мгновенная визуализация баз данных

ChartDB

ChartDB — это мощный веб‑инструмент, который помогает разработчикам быстро и интуитивно визуализировать и управлять схемами баз данных.

Когда мне нужно спроектировать базу данных, ChartDB становится моим основным решением для простой визуализации схем.

ChartDB предлагает множество важных функций:

  • Мгновенный импорт схемы: Выполните одну «умную» команду, чтобы мгновенно получить схему базы данных в формате JSON. Эта функция экономит время при документировании, совместной работе или анализе структуры данных.

  • Экспорт с поддержкой искусственного интеллекта для миграций: Экспорт на основе ИИ позволяет генерировать DDL‑скрипты, адаптированные к целевому диалекту базы данных. Это делает миграции между такими системами, как MySQL, PostgreSQL, SQLite и другими, бесшовными.

  • Интерактивное редактирование схем: Легко настраивайте макет схемы в редакторе ChartDB. Регулируйте структуру, добавляйте аннотации и создавайте визуализации даже для самых сложных структур баз данных.

ChatDb Dashboard

Дашборд ChartDB помогает эффективно управлять схемами баз данных в одном месте.

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

  • Настраивайте макеты схем и экспортируйте их в формате SQL или изображения для удобного обмена.

  • Выполняйте миграции баз данных с помощью генерации DDL‑скриптов на основе искусственного интеллекта.

Итак, с помощью ChartDB вы можете упростить задачи проектирования и миграции баз данных.

ChartDB на GitHub.

9. Stack Auth — Управляемая аутентификация пользователей

Stack Auth

Последний инструмент в нашем списке — Stack Auth, альтернатива с открытым исходным кодом для Auth0 и Clerk. Если вы ищете возможность интеграции само‑хостируемой и настраиваемой системы аутентификации пользователей, Stack Auth — отличный выбор, так как его версия для само‑хостинга бесплатна.

Stack Auth поддерживает такие функции, как единый вход (SSO), OAuth и многофакторная аутентификация (MFA).

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

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

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

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

Stack Auth на GitHub.

Вот и всё! Я постарался охватить широкий спектр инструментов. Если вы знаете другие крутые инструменты, напишите о них в комментариях.

Больше актуальных инструментов для разработки и тестирования приложений можно изучить на онлайн-курсах от практикующих экспертов: в каталоге можно посмотреть список всех программ, в календаре — записаться на открытые уроки.

© Habrahabr.ru