Прошел всего месяц после выпуска Appwrite 0.12, а Appwrite 0.13 уже доступен. Новый выпуск включает в себя несколько основных функций, которые доводят ваш опыт написания приложений до предела и помогают вам реализовать некоторые новые и интересные варианты использования поверх вашей блестящей альтернативы Firebase с открытым исходным кодом и самостоятельного размещения.

TL;DR

Этот новый выпуск был сосредоточен на двух основных областях. Первый — Хранилище для записи приложений. Добавлено много новых функций, включая сегменты, (особенно) поддержку больших файлов, потоковые загрузки и новые адаптеры хранения. strong> для S3, DigitalOcean Spaces и других устройств, совместимых с S3.

Вторая область улучшений — это Облачные функции Appwrite. В новом API функций Appwrite используется новая сборка исполнителя поверх открытых сред выполнения (подробнее об открытых средах выполнения ниже), которая повышает производительность выполнения функций Appwrite за счет более 10 раз(!) и теперь позволяет выполнять долгожданные синхронные и асинхронные выполнения.

Помимо этих основных дополнений, вы также можете ожидать несколько новых и улучшенных адаптеров OAuth, новых поставщиков ведения журналов, множество исправлений ошибок и некоторые улучшения пользовательского интерфейса консоли Appwrite. Продолжайте читать, чтобы узнать все, что вам нужно знать о выпуске 0.13.

Новый пользователь Appwrite?

Appwrite — это серверная часть как услуга с открытым исходным кодом, которая абстрагирует всю сложность создания современного приложения, предоставляя вам набор REST API для ваших основных внутренних потребностей. Appwrite берет на себя тяжелую работу разработчиков и обрабатывает аутентификацию и авторизацию пользователей, базы данных, хранилище файлов, облачные функции, веб-перехватчики и многое другое. Appwrite имеет полностью открытый исходный код, и вы можете самостоятельно разместить его в любом месте. Appwrite разрабатывается открыто, у проекта более 16 тысяч звезд GitHub, а сообщество участников насчитывает более 550 разработчиков по всей планете.

Ковши для хранения

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

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

Адаптеры хранения и поддержка S3

Appwrite был разработан, чтобы быть гибким и независимым от технологий, с идеей, что вы должны иметь возможность интегрировать Appwrite с вашим любимым технологическим стеком. В этом выпуске вы теперь можете использовать свои S3 или совместимые с S3 сервисы, такие как DigitalOcean Spaces, в качестве адаптера хранилища для ваших файлов Appwrite.

Это позволяет быстро масштабировать Appwrite с помощью управляемых решений для всех постоянных служб Appwrite (хранилище и база данных). С этим изменением уровень Appwrite вашей установки становится полностью апатридным и более простым в управлении в самостоятельных установках. Кроме того, благодаря облачным провайдерам, таким как AWS, DigitalOcean и другим, вы также можете использовать управляемые решения для резервного копирования и мониторинга и не заботиться об управлении уровнем хранилища Appwrite.

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

Поддержка (ОЧЕНЬ) больших файлов

Еще одно значительное улучшение, которое Appwrite 0.13 добавляет в API хранилища, — это поддержка загрузки очень больших файлов. В предыдущих версиях Appwrite каждый файл загружался в память вашего сервера, что означает, что самый большой файл, который вы можете загрузить, ограничен объемом доступной свободной памяти. Это уже не так. Appwrite 0.13 теперь внутренне обрабатывает файлы небольшими порциями, чтобы у вас всегда было достаточно памяти для обслуживания других вызовов API и фоновых заданий.

Теоретически, как только вы измените переменную окружения _APP_STORAGE_LIMIT, Appwrite не применяет никаких ограничений на размер файлов, которые вы будете загружать. Тем не менее, вы можете столкнуться с ограничениями другой файловой системы или поставщика. Например, для сервисов AWS и DigitalOcean S3 ограничение на размер файла составляет 5 ТБ, для файловой системы ext4 ограничение составляет 16 ТБ, а NTFS имеет ограничение 256 ТБ.

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

CLI v2.0 и новый Build Worker

Помимо версии 0.13, была выпущена новая Appwrite CLI версии 2.0. Новая версия была полностью переписана, чтобы отделить интерфейс командной строки от Docker и обеспечить лучший и простой рабочий процесс для развертывания новых облачных функций.

В новом CLI 2.0 будут две новые команды: init для создания ресурсов и deploy для развертывания ресурсов. Новый интерфейс командной строки также будет поддерживать начальные шаблоны для функций на разных языках, область консоли для управления созданием проектов, ключи API и многое другое, а также файл appwrite.json для хранения вашей конфигурации и развертывания в разных экземплярах Appwrite.

Улучшенное и более быстрое время выполнения функций

Одним из самых больших улучшений Appwrite 0.13 является новая среда выполнения и архитектура выполнения функций. Новая архитектура использует связь TCP вместо интерфейса командной строки Docker для запуска, запуска и выполнения функций. Новый метод связи позволяет теплым функциям работать более чем в 10 раз быстрее по сравнению с предыдущими выпусками Appwrite.

Новая архитектура также позволяет API функций записи приложений выполнять функции синхронно и асинхронно. Эта новая возможность должна позволить создать огромное количество новых вариантов использования поверх функций Appwrite и максимально приблизить Appwrite к бессерверным возможностям крупных облачных провайдеров, таких как GCP и AWS.

Больше возможностей

Appwrite 0.13 включает в себя множество новых функций. Добавлены два новых поставщика OAuth для Stripe и Notion. Адаптер Microsoft OAuth был обновлен, чтобы принимать новые настройки и быть гораздо более гибким. Добавлена ​​новая поддержка токена обновления OAuth, а также введен новый адаптер регистрации ошибок для управления ошибками сервера Appwrite с помощью LogOwl.

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

Узнать больше

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

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.