June 11

Как работает Cursor: взгляд изнутри

Cursor — это не просто еще одна IDE с поддержкой ИИ. За два года компания Anysphere превратила свой продукт в инструмент стоимостью $9.9 млрд с годовой выручкой более $500 млн. Но как именно работает эта магия под капотом?

Архитектура: форк VS Code на стероидах

Cursor построен на основе форка Visual Studio Code — решение, которое позволило команде сосредоточиться на инновациях, а не на создании стабильного редактора с нуля. TypeScript и Electron остались основой фронтенда, но бэкенд получил серьезные усиления в виде Rust для всех критичных к производительности компонентов.

Интересно, что несмотря на масштаб, бэкенд остается монолитом — напоминание о том, что монолиты отлично работают для быстрорастущих стартапов.

Автодополнение: гонка с миллисекундами

Когда вы открываете файл в Cursor, запускается сложный механизм генерации "tab suggestions":

  1. Локальный сбор контекста — клиент собирает небольшую часть текущего кода
  2. Шифрование и отправка — код шифруется и передается на сервер
  3. Инференс в облаке — сервер расшифровывает данные и генерирует предложения с помощью собственной LLM-модели
  4. Мгновенное отображение — предложение появляется в IDE серым цветом

Главный вызов здесь — баланс между количеством контекста (больше контекста = лучшие предложения) и скоростью (меньше данных = быстрее отклик). Цель — укладываться в секунду.

Чат без хранения кода: Merkle Trees в деле

Самая изящная часть архитектуры Cursor — это работа чата с кодовой базой без хранения исходного кода на сервере. Как это возможно?

Семантическое индексирование

  1. Разбивка на чанки — код делится на небольшие логические части
  2. Создание эмбеддингов — каждый чанк превращается в векторное представление (используются модели OpenAI или собственные)
  3. Обфускация — даже имена файлов скрываются перед отправкой на сервер

Умная синхронизация с Merkle Trees

Cursor использует Merkle деревья для эффективного отслеживания изменений:

  • Каждый файл получает хеш на основе содержимого
  • Каждая папка получает хеш на основе хешей дочерних элементов
  • Клиент и сервер поддерживают свои версии дерева
  • Каждые 3 минуты происходит сравнение деревьев
  • Переиндексируются только изменившиеся файлы

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

Поиск по коду в реальном времени

Когда вы задаете вопрос о коде:

  1. Запрос анализируется и превращается в векторный поиск по эмбеддингам
  2. Находятся релевантные части кода
  3. Сервер запрашивает у клиента актуальный исходный код этих частей
  4. Генерируется ответ на основе полученного контекста

Anyrun: оркестратор в облаках

Anyrun (игра слов с названием компании Anysphere) — это написанный на Rust сервис-оркестратор, который управляет запуском агентов в облаке. Он обеспечивает безопасную изоляцию процессов, используя Amazon EC2 и AWS Firecracker.

Инфраструктура масштаба

Цифры впечатляют:

  • 1 миллион транзакций в секунду в пиковые моменты
  • Рост в 100 раз за 12 месяцев
  • 100+ миллионов строк корпоративного кода пишется ежедневно
  • Сотни терабайт индексов в базах данных

Для работы всего этого Cursor использует:

  • AWS для основной CPU-инфраструктуры
  • Azure для инференса на десятках тысяч NVIDIA H100 GPU
  • Turbopuffer как основную базу данных (после миграции с Yugabyte)
  • Datadog для мониторинга
  • Warpstream для потоковой обработки данных

Безопасность превыше всего

Cursor серьезно относится к безопасности:

  • Уважает .gitignore и предлагает собственный .cursorignore
  • Сканирует код на предмет секретов перед отправкой
  • Не хранит исходный код на серверах
  • Шифрует все передаваемые данные

Заключение

Cursor — это история о том, как правильная архитектура позволяет создать продукт, который кажется магией. Комбинация умного форка VS Code, эффективного индексирования с Merkle деревьями, быстрого автодополнения и безопасной работы с кодом создает опыт, который изменил то, как многие разработчики работают с кодом.

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

новости ии https://t.me/mcpnotebook