[Перевод] 9 open source библиотек для вашего следующего проекта
Разработчики часто сталкиваются с выбором, какие инструменты использовать для своего следующего проекта. Даже если вы серьёзно настроены на разработку продукта, проблема остаётся той же.
В этой статье я расскажу о 9 библиотеках с открытым исходным кодом, которые улучшат ваш будущий проект.
Поехали!
1. 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 — Бэкенд-фреймворк для типобезопасных приложений
Управление облачными сервисами для масштабируемых приложений — задача непростая. Часто она превращается в хаос с излишне сложным управлением инфраструктурой, несогласованными 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
Вы когда‑нибудь хотели создать простой AI‑проект, не усложняя его использованием фреймворков для фронтенда?
Если да, то вам подойдёт этот инструмент.
Taipy — это библиотека с открытым исходным кодом для быстрого создания готовых к продакшену AI‑приложений на Python. Она позволяет быстро переходить от простых прототипов к полноценным веб‑приложениям.
Taipy создаёт компоненты, графические интерфейсы и дашборды, используя команды на Python. Она предназначена в основном для проектов, работающих с данными, и идеально подходит для обработки больших датасетов.
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 — это инструмент с открытым исходным кодом, созданный для унификации работы дата‑сайентистов, разработчиков и SRE над AI/ML‑моделями, исходным кодом, датасетами и другими артефактами.
KitOps выводит управление AI/ML‑моделями на новый уровень гибкости и эффективности. Он трансформирует подход к упаковке, версионированию и развёртыванию ресурсов, используя стандарты OCI для максимальной совместимости и сотрудничества.
Библиотека предлагает ряд мощных функций:
Упаковка моделей, датасетов, конфигураций и кода в совместимые с OCI ModelKits для простого версионирования.
Совместимость с любым OCI‑совместимым реестром для гибкости в AI/ML‑проектах.
Конфигурации на основе YAML для тонкой настройки LLM и создания RAG‑конвейеров.
Изучите документацию, чтобы понять, почему KitOps становится обязательным инструментом в рабочих AI/ML‑процессах.
KitOps также обеспечивает гибкое управление моделями, датасетами и кодом через любой OCI‑совместимый реестр. Это делает его идеальным выбором для разработчиков и MLOps‑команд, работающих как над небольшими проектами, так и над крупными корпоративными AI‑приложениями.
Упаковывайте и версионируйте модели, датасеты и код, используя стандарты OCI.
Автоматизируйте развёртывание и тестирование моделей.
Отслеживайте происхождение и защищайте модельные артефакты с помощью подписания артефактов.
Интегрируйтесь без проблем с существующими CI/CD‑процессами.
KitOps на GitHub
5. CopilotKit — Лёгкое создание AI‑агентов внутри приложения
CopilotKit — вероятно, самый простой и эффективный способ добавить искусственный интеллект в приложение.
CopilotKit — это ведущий, надёжный и простой в использовании фреймворк с открытым исходным кодом для создания AI‑помощников внутри приложений. Вы можете создавать встроенных AI‑чат‑ботов и AI‑агентов, используя простые компоненты, предоставляемые CopilotKit.
Некоторые из ключевых его функций:
AI‑чат‑бот внутри приложения: Добавьте AI‑чат‑бота в своё приложение с помощью простых компонентов plug‑and‑play, включая поддержку headless UI.
Copilot Readable State: Эта функция позволяет AI‑помощникам получать доступ к состоянию приложения и интерпретировать его, делая AI‑ассистента более контекстно‑осведомлённым и отзывчивым.
Copilot Actions: Даёт возможность AI‑помощникам выполнять задачи и совершать действия напрямую в приложении на основе ввода пользователя и контекста приложения.
CopilotKit также предоставляет встроенные (и полностью настраиваемые) UX‑компоненты, такие как
,
,
,
.
Если вы когда‑либо пробовали интегрировать агентов в своё React‑приложение, вы знаете, сколько времени может отнимать этот процесс.
CopilotKit недавно запустил Co‑Agents для решения этой проблемы.
Co‑Agents — это мощный набор инструментов для создания приложений с нативной поддержкой агентов на базе LangGraph. Они разработаны, чтобы глубоко интегрировать агентов LangGraph в React‑приложения, расширяя границы возможного для UX, ориентированного на искусственный интеллект.
Чтобы узнать больше о возможностях Co‑Agents, посмотрите видео:
Я также создал приложение для планирования, использующее искусственный интеллект, с помощью CopilotKit. Вы можете ознакомиться с ним здесь:
6. Tolgee — Веб‑платформа для локализации
Интернационализация и локализация важны для охвата глобальной аудитории, но управление ими вручную может отнимать много времени.
Именно здесь на помощь приходит Tolgee.
Tolgee — это платформа с открытым исходным кодом, которая позволяет просто переводить приложения на любой язык без изменения кода.
Она идеально подходит для веб‑, мобильных и даже настольных приложений, спроектированных с учётом потребностей разработчиков, чтобы упростить процесс локализации от начала до конца.
Её возможности включают:
Перевод в контексте: Просматривайте переводы точно так, как они будут отображаться в вашем приложении.
Управление и отслеживание ключей перевода: Экономьте время, поддерживая порядок в ваших ключах локализации.
Настройка ролей и разрешений: Контролируйте доступ для более эффективной совместной работы.
Расширяемость с помощью плагинов: Легко интегрируйте Tolgee с дополнительными инструментами и сервисами по мере необходимости.
Tolgee также предоставляет SDK, REST API и CLI для упрощения локализации в средах JavaScript, мобильных устройствах и на серверной части.
Tolgee на GitHub.
7. OPAL — Административный уровень для Policy Engine
OPAL — это административный слой с открытым исходным кодом, созданный для работы с механизмами политик, такими как Open Policy Agent (OPA) и AWS Cedar.
Если вы работаете над крупными проектами с сложными контролями доступа, OPAL поможет упростить управление разрешениями для команд или групп пользователей.
OPAL отслеживает изменения в политике и данных политик в режиме реального времени, тем самым гарантируя, что уровень авторизации приложения всегда актуален.
Независимо от того, меняются ли данные через API, Git или сторонние сервисы, OPAL автоматически синхронизирует необходимые политики и данные авторизации с вашими сервисами, обеспечивая правильный доступ.
Некоторые ключевые функции и сценарии использования OPAL:
Обновления разрешений в реальном времени: OPAL автоматически предоставляет или отзывает разрешения в реальном времени, устраняя необходимость в ручных обновлениях доступа в приложениях.
Политика как код: Разработчики могут писать политики как код, что упрощает их версионирование, обзор и управление для единообразного подхода к обработке политик.
Облачная интеграция: OPAL легко интегрируется с облачными микросервисами, такими как AWS или Kubernetes, упрощая безопасные и автоматизированные обновления политик.
Тонкая настройка авторизации: OPAL поддерживает точную, сквозную авторизацию и совместим с несколькими языками политик и децентрализованными источниками данных, что делает его идеальным для сложных распределённых систем.
Этот инструмент очень полезен для добавления обновлений разрешений в реальном времени в проект, а также для удобного просмотра и управления ролями пользователей на разных уровнях в крупных приложениях.
OPAL на GitHub.
8. ChartDB — мгновенная визуализация баз данных
ChartDB — это мощный веб‑инструмент, который помогает разработчикам быстро и интуитивно визуализировать и управлять схемами баз данных.
Когда мне нужно спроектировать базу данных, ChartDB становится моим основным решением для простой визуализации схем.
ChartDB предлагает множество важных функций:
Мгновенный импорт схемы: Выполните одну «умную» команду, чтобы мгновенно получить схему базы данных в формате JSON. Эта функция экономит время при документировании, совместной работе или анализе структуры данных.
Экспорт с поддержкой искусственного интеллекта для миграций: Экспорт на основе ИИ позволяет генерировать DDL‑скрипты, адаптированные к целевому диалекту базы данных. Это делает миграции между такими системами, как MySQL, PostgreSQL, SQLite и другими, бесшовными.
Интерактивное редактирование схем: Легко настраивайте макет схемы в редакторе ChartDB. Регулируйте структуру, добавляйте аннотации и создавайте визуализации даже для самых сложных структур баз данных.
Дашборд ChartDB помогает эффективно управлять схемами баз данных в одном месте.
Просматривайте и управляйте несколькими схемами баз данных в режиме реального времени.
Настраивайте макеты схем и экспортируйте их в формате SQL или изображения для удобного обмена.
Выполняйте миграции баз данных с помощью генерации DDL‑скриптов на основе искусственного интеллекта.
Итак, с помощью ChartDB вы можете упростить задачи проектирования и миграции баз данных.
ChartDB на GitHub.
9. Stack Auth — Управляемая аутентификация пользователей
Последний инструмент в нашем списке — Stack Auth, альтернатива с открытым исходным кодом для Auth0 и Clerk. Если вы ищете возможность интеграции само‑хостируемой и настраиваемой системы аутентификации пользователей, Stack Auth — отличный выбор, так как его версия для само‑хостинга бесплатна.
Stack Auth поддерживает такие функции, как единый вход (SSO), OAuth и многофакторная аутентификация (MFA).
Он хорошо подходит для проектов, где необходимо избежать зависимости от поставщиков или сократить затраты, связанные с использованием сторонних сервисов аутентификации.
Возможность само‑хостинга обеспечивает хранение конфиденциальных данных пользователей внутри инфраструктуры, что повышает безопасность приложений с жёсткими требованиями к соблюдению нормативных актов.
Примечательно, что Stack Auth предоставляет настраиваемую самостоятельно хостируемую систему аутентификации, которая облегчает разработчикам управление доступом пользователей.
С другой стороны, OPAL сосредоточен на управлении политиками в реальном времени и обеспечивает соответствие правил авторизации изменяющимся требованиям приложения.
Stack Auth на GitHub.
Вот и всё! Я постарался охватить широкий спектр инструментов. Если вы знаете другие крутые инструменты, напишите о них в комментариях.
Больше актуальных инструментов для разработки и тестирования приложений можно изучить на онлайн-курсах от практикующих экспертов: в каталоге можно посмотреть список всех программ, в календаре — записаться на открытые уроки.
Habrahabr.ru прочитано 2762 раза