Импортозамещение кроссплатформенной разработки
Открытый фреймворк для разработки настольных и мобильных приложений, сделанный в России
Ключевые идеи Stappler SDK:
Единая база кода
Максимальная переносимость и производительность
Минимум внешних зависимостей
Простота освоения и удобство разработки
Для кого?
Stappler предназначен для команд разработчиков, обслуживающих разнородные информационные системы. В рамках одной такой системы могут быть объединены подпроекты: серверные приложения, мобильные приложения, автоматизированные рабочие места, средства автоматизации, средства тестирования и многие другие.
Архитектура фреймворка
Что даёт?
Stappler предполагает использование общей среды и единой кодовой базы для всех информационных систем в проекте, что существенно снижает стоимость разработки и поддержки, снижает требования к числу и специализации разработчиков.
Особенности фреймворка
В Stappler сочетаются современные подходы к разработке и портируемые низкоуровневые решения, подходящие для нестандартных платформ.
Высокопроизводительная графика и вычисления на всех платформах
Компонент Xenolith представляет собой графический и вычислительный движок низкого уровня. Разрабатывается для использования на современных процессорах и допускает чрезвычайно широкое использование многопоточности.
  • Vulkan
    Для работы с графическими устройствами используется Vulkan API:
    • Производительность сравнима с CUDA.
    • Огромный круг поддерживаемых устройств.
    • Lavapipe - там где нет поддержки Vulkan.
  • Максимальный охват платформ
    • Android, iOS, Linux, Windows, Mac OS.
    • amd64/ARM, x86, e2k.
    • быстрая адаптация под новые платформы (RISC-V, LoongArch и другие).
  • Графика и вычисления
    • Точный и высокопроизводительный тесселятор позволяет использовать векторную графику, упрощая создание интерфейсов для экранов с различной формой и плотностью пикселей.
    • Высококачественная типографика.
    • Световые эффекты на основе Signed distance field.
    • Система высокопроизводительных вычислений для задач машинного обучения и статистического анализа.
Единая база кода для всего набора инструментов
Ориентируясь на максимальный охват платформ, мы выбрали язык С++ в качестве основного, и возможность использовать другие языки через виртуальную машину WebAssembly.
  • Используйте упрощенный С++
    Stappler SDK использует лишь ограниченное подмножество языка, и не требует знания наиболее сложных элементов C++.
  • Или любой другой язык
    • Система скриптов на основе WASM (WASI + WIT).
    • Позволяет создавать скрипты на языках: C/C++, Rust, Go, JVM languages (Java, Kotlin, Clojure, Scala и др.), JavaScript.
    • В будущем: Python, Ruby и другие.
    • Поддерживается живое обновление (live-reload) скриптов.
    • Защищённое окружение исполнения скриптов.
    • Cкорость исполнения скриптов такая же как и нативного кода.
  • Простота и удобство разработки
    • Модульная система сборки
    • Повторное использование кода
    • Stappler объединяет классический подход к разработке на языке C++ с практиками, пришедшими из других систем и платформ, чтобы получить наиболее простой и эффективный API
Создание UI на базе виджетов
Мы совмещаем лучшие и проверенные практики создания пользовательских интерфейсов из таких проектов как: Flutter, Electron, VueJS.
  • Стиль Vue (Proof of concept)
    Создавайте интерфейсы используя Vue-подобный синтаксис разметки SFC (single file components) компонентов.
  • Инструменты
    • Набор интерфейсных элементов (виджетов) на основе Material Design 3.
    • Поддержка экранов с различной ориентаций, разрешением и плотностю пикселей.
    • Возможность создания отдельного UIKit платформы.
Демо
Демонстрационные тесты для инструментов и возможностей графического движка
Встроенная работа с базой данных
API Stappler для работы с базами данных максимально явно и подробно отражает структуру взаимодействия БД, контроля доступа и внешних интерфейсов данных, не становясь при этом “write-only” кодом, требующим чрезмерное количество документации.
  • Поддержка PostgreSQL, SQLite и Postgres Pro
    • Компонент db позволяет описывать типы, отношения между полями и схемами данных, контроль доступа и логику автоматизации в одном месте.
    • Компонент db универсален и может использоваться с одной и той же БД в виде веб-сервера, графического или консольного приложения без изменения кода, отвечающего за данные.
    • Подход Stappler сочетает преимущества структурированного подхода SQL-БД и гибкость NoSQL (по образцу Firebase).
    • API может выполнять практически полный комплекс основных задач, включая: подвыборки, вычислимые на чтение и запись поля, виртуальные поля, триггеры, дельта-запросы, сжатие данных, полнотекстовый поиск и многое другое.
Встроенный модуль веб-сервера
Используется прозрачный сквозной механизм кодирования, сжатия и шифрования данных. Для использования сжатия или шифрования разработчику не требуется вызывать дополнительных функций, система автоматически распознаёт свои форматы сжатия и шифрования, и декодирует их.
  • Серверные приложения
    • Шаблонизатор на основе синтаксиса Pug.
    • Общий код и инструменты клиент/сервер.
    • Интеграция C/C++ и другого кода, Vulkan на сервере.
    • Нативная производительность - низкая стоимость ресурсов.
    • Поддержка протокола WebSocket.
    • Система контейнеризации на основе Docker.
    • Возможность нетиповых решений.
  • Криптография
    • Авторизация и аутентификация на основе криптографических ключей (в том числе, ГОСТ 34.10-2018, ГОСТ 34.11-2018, ГОСТ 34.12-2018) через встроенные методы HTTP, а также через модифицированную технологию JsonWebToken.
    • К основной концепции JWT добавляется дополнительный шифрованный блок, открыть который может лишь сервер, выписавший токен.
    • GnuTLS и OpenSSL.
    • Пользовательские криптохранилища.
    • Упрощённый интерфейс.
Stappler в сравнении
Проект конкурирует с различными другими решениями. Ни одна из альтернатив не покрывает полный комплекс платформ, планируемых к поддержке в Stappler SDK.
Команда проекта
  • Катунцев Роман
    Ведущий разработчик
  • Рыбников Виталий
    Разработчик
  • Немчинов Михаил
    Тестировщик
  • Муканин Дмитрий
    Менеджер, технический писатель
Уже используют Stappler SDK:
Наше выступление на конференции OS Day 2024
При поддержке
  • Фонда содействия развитию малых форм предприятий в научно-технической сфере
Наши контакты и чат для общения
+7 908 646 39 73
admin@stappler.dev
Made on
Tilda