Определения
Micropython
Micropython - это простая и эффективная реализация языка программирования Python 3
, включающая небольшое подмножество стандартной библиотеки Python
и оптимизированная для работы на микроконтроллерах и в ограниченных средах.
Fediverse
Fediverse - это способ организации взаимодействия сервер - сервер, обеспечивающий децентрализованную схему распространения и обработки информации.
IoT
Ineternet of Things
- это обширная сеть устройств-предметов, подключенных к Интернету и способных взаимодействовать друг c другом.
Git
Git - это бесплатная распределенная система контроля версий с открытым исходным кодом, предназначенная для быстрой и эффективной работы с проектами, от небольших до очень крупных.
Interpreterable
Interpreterable
- семейство языков программирования, у которых программный код выполняется интерпритатором - бинарной программой читающей программы строчка за строчкой.
Compilable
Compilable
- семейство языков программирования, у которых программный код перед исполнением преобразуется в машинный код при помощи компилятора. Сгенерированный машинный код исполняется процессором напрямую.
Git Commit
Commit или Коммит
- это зафиксированное во времени состояние кода или иной байтовой структуры в системе контроля версий Git. Каждый коммит имеет свой уникальный идентификатор и обычно имеет description
- текстовое описание изменений, которые в него входят.
Git Tag
Tag или Тег
- это коммит, помеченный дополнительным свойством - тегом, обычно тег присваивается стабильным-релизным версиям какой-либо программы.
Git Branch
Branch или Ветка
- это набор коммитов, расположенных в хронологическом порядке в системе контроля версии Git.
Readme File
Readme
- файл документации внутри репозитория Git, по усмотрению создателя репозитория содержит базовую инфорацию о переменных окружения, развёртыванию Unit, нюансах работы, настройки Unit или любую другую информацию, которую автор счёл нужной. Инструкция для авторов по заполнению Readme
.
Gitlab
Gitlab
- это веб-инструмент жизненного цикла Git репозиториев от компании GitLab Inc
. В данной документации под Gitlab
подразумевается не только gitlab.com, но и любой другой Узел Gitlab CE
или Gitlab EE
Github
Github - это хостинг Git репозиториев от компании Github Inc
.
Instance
Instance или Узел
- полностью работоспособное, настроенное и запущенное веб приложение - способное отвечать на запросы клиентов.
API
Application Programming Interface
- это контракт, проедоставляемый программами и описывающий взаимодействие c ними. Например Backend Pepeunit предоставляет - REST, GQL, MQTT
REST
REST API
- контракт описывающий взаимодействие программы с клиентами через HTTP
запросы. Pepeunit Backend использует пакет Pydantic и интерфейс Swagger OpenAPI для предоставления REST API
.
GQL
GraphQL API
- это язык запросов и серверная среда с открытым исходным кодом, использующая HTTP
запросы для обмена информацией с клиентами. Pepeunit Backend использует пакет strawberry-graphql для предоставления GraphQL API
.
MQTT
MQTT API
- упрощённый сетевой протокол, работающий поверх TCP/IP
, ориентированный на обмен сообщениями между устройствами по принципу издатель-подпищик. Pepeunit Backend использует пакет fastapi-mqtt как клиент, для взаимодействия c MQTT Broker - EMQX.
MQTT Broker
MQTT Broker
- это серверное приложение, которое координирует сообщения между издателями и подпищиками MQTT протокола. В Pepeunit главными подпищиками и издателеми можно считать Unit, а главным руководителем взаимодействия - Backend. Pepeunit использует MQTT брокера - EMQX.
ACL List
ACL List
- это файл, определяющий правила авторизации для MQTT Broker
ChatBot
ChatBot
- приложение, позволяющее взаимодействовать с Backend через диалог в чате. Pepeunit Backend использует пакет AioGram как клиент, для взаимодействия с Telegram Bot API.
Frontend
Frontend
- веб приложение, доступное для скачивания открытым способом и предназаначенное для обеспечения взаимодействия Пользователей c Backend приложением. Pepeunit Frontend Repository
Backend
Backend
- приложение размещаемое на сервере, обеспечивающее обработку, хранение и анализ информации, а так же предоставляющее разные API для взаимодействия. Pepeunit Backend Repository
Repo
Repo
- это представление Pepeunit о внешнем Git репозитории, например из Gitlab или Github. Данная сущность содержит в себе полный клон репозитория и синхронизирует своё состояние с внешним репозиторием, что позволяет Pepeunit быстро создавать микропрограммы для Unit.
Unit
Unit
- это представление о физичеcком IoT устройстве в Pepeunit, данная сущность создаётся на основе Repo и несёт в себе информацию о конкретном физическом IoT устройстве, а так же о версии микропрограммы доступной в Repo.
UnitNode
UnitNode
- это предстваление о MQTT топике для Pepeunit, данная сущность описывает точку взаимодействия с Unit. UnitNode
может быть двух типов Input
и Output
. Между UnitNode
разных Unit могут быть связи: от одного Output
к многим Input
.
env_example.json
env_example.json
- файл, описывающий переменные окружения нужные для корректной работы Unit, он создаётся разработчиком Unit и помещается в каждую версию Repo. На основе данного файла и ввода Пользователя, Pepeunit может сгенерировать env.json файл для Unit. Более подробная информация о env_example.json.
env.json
env.json
- секретный файл, содержащий переменные окружения нужные дла корректной работы Unit. Именно данный файл отличает ваш Unit от других Unit отстыкованных от одного и того же Repo. Он создаётся владельцем Unit совместно с Pepeunit и хранится в шифрованном виде внутри сущности Unit. Более подробная информация о env.json.
schema_example.json
schema_example.json
- файл схемы, описывающий MQTT топики нужные Unit. Данный файл создаётся разработчиком Unit и помещается в каждую версию Repo. Благодаря данному файлу Pepeunit создаёт UnitNode сущности, отвечающие за взаимодействие с Unit и регламентирующие политики доступа до топиков Unit. Более подробная информация о schema_example.json.
schema.json
schema.json
- готовый файл схемы для Unit генерируемый Pepeunit, содержит в себе ссылки на UnitNode и базовые топики для взаимодействия с Pepeunit. Более подробная информация о schema.json.
.pepeignore
.pepeignore
- файл Git репозиториев Unit аналогичный по синтаксису .gitignore, но позволяющий удалить все указанные в нём файлы и дирректории из репозитория в момент генерации архива с программой для Интерпритируемых Unit. Более подробная информация о .pepeignore.