Как запустить быстрый парсер сайтов для LLM на 14 мегабайтах оперативки
Когда я в прошлый раз пытался развернуть локальный стек для парсинга сайтов под RAG-пайплайн, скромная VPS быстро запросила пощады. Связка из браузерных движков, очередей задач и тяжелого рантайма моментально съела гигабайты памяти. Если вы тоже пробовали селфхостить популярные решения вроде Firecrawl, то наверняка помните эти системные требования.
Недавно в поле зрения попал проект fastCRW (в репозитории он называется просто crw). Автор переписал привычные функции скрейпинга и краулинга на Rust, уместив все в компактный бинарник.
Что умеет проект
fastCRW задумывался как прямая альтернатива Firecrawl и Tavily. Он забирает веб-страницы по URL и отдает их в виде чистого Markdown, готового для скармливания языковым моделям, либо в структурированном JSON.
Инструмент закрывает четыре основные задачи:
- Scrape: превращает страницу в Markdown, сырой HTML или скриншот.
- Crawl: методично обходит страницы сайта по внутренним ссылкам с учетом robots.txt.
- Map: строит карту ссылок ресурса без полной загрузки каждой страницы.
- Search: ищет информацию в интернете и сразу выгружает результаты.
Судя по бенчмаркам в репозитории, на открытом датасете из тысячи адресов fastCRW показал хорошую скорость загрузки и полноту извлечения данных, при этом в режиме ожидания бинарник потребляет всего около 14 мегабайт оперативной памяти.
Как с этим работать
Попробовать утилиту можно локально без регистрации, либо подключить облачный бекенд с бесплатным тарифом.
Установка в терминале:
curl -fsSL https://fastcrw.com/install | sh
Сразу после этого доступен CLI. Простой вызов вернет распарсенный Markdown прямо в поток вывода:
crw https://example.com
Интеграция в код
Для разработчиков есть готовые библиотеки. Вот так выглядит сбор данных на Python:
from crw import CrwClient
client = CrwClient()
page = client.scrape("https://example.com", formats=["markdown"])
print(page["markdown"])
Для Node.js синтаксис практически такой же:
import { CrwClient } from "crw-sdk";
const client = new CrwClient();
const page = await client.scrape("https://example.com", {
formats: ["markdown"],
});
console.log(page.markdown);
Подключение к AI-ассистентам через MCP
Отдельный плюс — поддержка Model Context Protocol. Это значит, что утилиту можно быстро подключить как инструмент для Claude Desktop, Cursor или любого другого агента.
Команда для автоматической настройки MCP:
npx -y crw-mcp@latest install
После установки модель получает навык самостоятельного поиска в сети и чтения страниц без костылей с внешними скриптами.
Варианты развертывания и лицензия
У проекта два пути использования. Первый — запуск локального бинарника на собственных серверах под Linux или macOS. Второй путь — облачный API с готовым рендерингом тяжелого JavaScript и поиском.
Важно взглянуть на лицензии, если планируете внедрять инструмент в продакшн. Сам движок и MCP-сервер распространяются под строгой лицензией AGPL-3.0. Клиентские библиотеки для Python и TypeScript открыты под привычной MIT.
Кому пригодится
fastCRW отлично подойдет, если вы строите RAG-системы, собираете данные для дообучения моделей или делаете автономных AI-агентов. Проект избавляет от необходимости держать тяжелый парк браузеров ради извлечения простого текста со статей и документации.
Если вам надоело отдавать половину ресурсов сервера под тяжелые парсеры, попробуйте запустить crw локально — разница в аппетитах к памяти заметна с первых секунд.
