Open VSX
Open VSX — это открытый реестр расширений (registry) для редакторов кода и интегрированных сред разработки (IDE), совместимых с протоколом расширений Visual Studio Code (VS Code). Он служит альтернативой официальному маркетплейсу расширений Microsoft (Visual Studio Marketplace) и предоставляет платформу для публикации, хранения и распространения расширений без привязки к проприетарной инфраструктуре Microsoft.
История
Проект Open VSX был создан компанией Eclipse Foundation в 2020 году как ответ на необходимость создания независимой, открытой и сообществом управляемой экосистемы расширений для VS Code. Изначально Visual Studio Marketplace был единственным источником расширений для VS Code, но он был проприетарным, контролировался Microsoft и не позволял сторонним разработчикам создавать альтернативные клиенты или инструменты для работы с расширениями.
В 2020 году, после того как Microsoft объявила о внесении изменений в лицензионное соглашение, которые ограничивали использование протокола расширений VS Code в сторонних IDE, Eclipse Foundation инициировала создание Open VSX. Проект был официально анонсирован в марте 2020 года. Основной целью было создание реестра, который бы полностью соответствовал принципам открытого исходного кода, был нейтральным по отношению к вендорам и мог использоваться любыми проектами, включая такие IDE, как Eclipse Theia, Gitpod, VSCodium и другие.
Первая стабильная версия Open VSX была выпущена в 2021 году. С тех пор реестр активно развивается, привлекая как индивидуальных разработчиков, так и крупные компании, которые публикуют свои расширения.
Архитектура и принципы работы
Open VSX функционирует как централизованный реестр, который хранит метаданные и файлы расширений. Он реализован на основе открытого протокола, совместимого с API Visual Studio Marketplace, что позволяет использовать его в качестве замены в большинстве клиентов.
Основные компоненты
- Серверная часть (backend): Написана на TypeScript и Node.js, использует базу данных PostgreSQL для хранения метаданных и файловую систему (или облачное хранилище) для хранения самих расширений.
- API: Предоставляет RESTful API для поиска, установки, обновления и публикации расширений. API полностью совместим с API Visual Studio Marketplace, что позволяет использовать стандартные инструменты VS Code.
- Веб-интерфейс: Доступен по адресу open-vsx.org, предоставляет возможность просматривать, искать и скачивать расширения, а также управлять профилями разработчиков.
- Клиентская часть (CLI): Инструмент командной строки
ovsxдля публикации и управления расширениями.
Протокол расширений
Open VSX поддерживает стандартный протокол расширений VS Code, который включает в себя:
- Манифест расширения (
package.json): Описывает расширение, его зависимости, активацию и точки входа. - Пакет расширения (
.vsix): Архив, содержащий все файлы расширения, включая манифест, код, иконки и локализации. - API расширений: Набор JavaScript/TypeScript API, которые расширения могут использовать для взаимодействия с редактором.
Отличия от Visual Studio Marketplace
Open VSX и Visual Studio Marketplace имеют ряд ключевых различий, которые влияют на их использование и экосистему.
| Характеристика | Open VSX | Visual Studio Marketplace |
|---|---|---|
| Лицензия | Открытый исходный код (Eclipse Public License 2.0) | Проприетарная, контролируется Microsoft |
| Управление | Eclipse Foundation (независимая некоммерческая организация) | Microsoft |
| Доступность | Полностью открыт для всех, включая сторонние IDE | Доступен только для продуктов Microsoft (VS Code, Visual Studio) |
| Публикация | Бесплатно, через CLI или веб-интерфейс | Бесплатно, через веб-интерфейс или API, но с ограничениями |
| Модерация | Минимальная, основана на сообществе | Централизованная, с проверкой на вредоносное ПО |
| Интеграция | Встроена в Eclipse Theia, Gitpod, VSCodium, Code-OSS | Встроена только в VS Code и Visual Studio |
| Размер реестра | Значительно меньше (тысячи расширений) | Огромный (сотни тысяч расширений) |
Применение
Open VSX используется в нескольких ключевых сценариях:
Альтернативные IDE
Основное применение Open VSX — это обеспечение работы расширений в редакторах, которые не могут использовать Visual Studio Marketplace по лицензионным или техническим причинам. К таким редакторам относятся:
- Eclipse Theia: Платформа для создания облачных и настольных IDE, которая использует Open VSX в качестве основного реестра.
- VSCodium: Сборка VS Code с открытым исходным кодом, которая по умолчанию использует Open VSX вместо Visual Studio Marketplace.
- Gitpod: Облачная среда разработки, которая также интегрируется с Open VSX.
- Code-OSS: Исходный код VS Code, который может быть собран без проприетарных компонентов.
Корпоративные среды
Компании могут развернуть собственный экземпляр Open VSX для внутреннего использования, что позволяет:
- Контролировать, какие расширения доступны разработчикам.
- Обеспечить безопасность, исключив расширения из внешних источников.
- Публиковать внутренние расширения, не делая их публичными.
Сообщество разработчиков
Open VSX предоставляет платформу для публикации расширений, которые не могут быть опубликованы в Visual Studio Marketplace из-за политики Microsoft (например, расширения, нарушающие авторские права или содержащие критику). Однако такие расширения могут быть удалены администраторами Open VSX, если они нарушают законы или правила сообщества.
Критика и ограничения
Несмотря на свою полезность, Open VSX имеет ряд ограничений и подвергается критике:
- Неполнота реестра: Большинство популярных расширений, включая такие как Python, JavaScript (TypeScript), GitLens, Prettier и другие, не публикуются в Open VSX их авторами. Это связано с тем, что Microsoft не поощряет публикацию в альтернативных реестрах, а многие разработчики не видят в этом необходимости.
- Проблемы с безопасностью: Из-за минимальной модерации и отсутствия автоматического сканирования на вредоносное ПО, Open VSX более уязвим для публикации вредоносных расширений. Хотя сообщество старается отслеживать такие случаи, риск выше, чем в Visual Studio Marketplace.
- Зависимость от сообщества: Проект поддерживается добровольцами и Eclipse Foundation, что может приводить к задержкам в обновлениях и исправлении ошибок.
- Отсутствие некоторых функций: Open VSX не поддерживает все функции Visual Studio Marketplace, такие как автоматическое обновление расширений через фоновый процесс, а также не предоставляет аналитику использования для разработчиков.
Интересные факты
- Open VSX является частью более широкой экосистемы Eclipse Cloud Development Tools, которая включает в себя Eclipse Theia и Eclipse Che.
- В 2021 году компания Google объявила о поддержке Open VSX в своем проекте Project IDX, облачной IDE на базе Code-OSS.
- Некоторые крупные компании, такие как Red Hat и IBM, публикуют свои расширения в Open VSX, чтобы обеспечить их доступность для пользователей альтернативных IDE.
- Проект VSCodium, который является полностью открытой сборкой VS Code, использует Open VSX по умолчанию, что делает его единственным способом установки расширений для пользователей этой сборки.
Источники
- Официальный сайт проекта Open VSX (open-vsx.org)
- Репозиторий проекта на GitHub (eclipse/openvsx)
- Документация Eclipse Foundation по Open VSX
- Статья "Open VSX: The Open Source Alternative to the VS Code Marketplace" (2021)
- Обсуждения на форумах сообщества Eclipse Theia и VSCodium
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →