diff --git a/README.md b/README.md new file mode 100644 index 0000000..d73df8f --- /dev/null +++ b/README.md @@ -0,0 +1,148 @@ + + + + + + +
+
+ + + + +

Futriix

+ +

+ Проект Futriix основан на базе проекта KeyDB
+ Futriix's (команды futriix по большей части совпадают с командами KeyDB) +
+ Изучить полную документацию +
+
+ +

+
+ + ## Краткая документация проекта Futriix + + +
+ + Содержание
+
    +
  1. + О проекте +
  2. Лицензия
  3. +
  4. Основные термины
  5. +
  6. Подготовка
  7. +
  8. Компиляция
  9. +
  10. Вклад
  11. +
  12. Контакты
  13. +
+ + + +## О проекте + +Rfut - Это модуль, написанный на языке Rust, обеспечивающий создание кластера для субд Futriix. +Futriix является резидентной субд, т.е. хранящей свои данные в оперативной памяти, с их периодическим сохранением на внутренний носитель: HDD (жёсткий диск) или SSD-накопитель. + + + +## Лицензия + +Проект распространяется под 3-пунктной лицензией BSD. Подробнсти смотрите в файле `COPYING.txt`. + +## Основные термины + +* **База Данных(БД)** -массив информация, хранящийся, например, на флешке, в файле, на кластере +* **Система Управления Базами Данных(СУБД)** - Это программа для внесения изменений в базу данных и поиска по ней +* **Резидентная СУБД** - субд, хранящая все свои данные в оперативной памяти, с периодическим сохранением на HDD или SSD +* **Инстанс** - запущенный экземляр базы данных +* **Узел (хост,нода)** - физический сервер +* **Кластер** - группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс +* Команды, выполняемые с привилегиями суперпользователя (root), отмечены символом приглашения **«#»** +* Команды, выполняемые с правами обычного пользователя(user), отмечены символом приглашения **«$»** +* **FutBot** - интеллектуальный помощник в мессенджере Телеграмм, помогающий осущесвлять быстрый поиск по документации проекта + + +## Подготовка + +**Для операционных систем семейства Debian** выполните следующие шаги: +* Устанавливаем язык программирования C/C++, соопутствующие утилиты (autoconf и другие) + + ```sh + # apt update + # apt upgrade + # apt install build-essential nasm autotools-dev autoconf libjemalloc-dev tcl tcl-dev uuid-dev libcurl4-openssl-dev cmake git hugepages + ``` + +**Для операционных систем семейства Red Hat (Fedora, Aurora)** выполните следующие шаги: +* Устанавливаем язык программирования C/C++, соопутствующие утилиты (autoconf и другие) + + ```sh + # dnf update + # dnf install -y jemalloc-devel g++ libuuid-devel libatomic openssl-devel curl-devel cmake git hugepages + ``` + +* Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install) + +**Для операционной системы Alpine** выполните следующие шаги: +* Устанавливаем язык программирования C/C++, соопутствующие утилиты (autoconf и другие) + + ```sh + # apk update + # apk add --no-cache coreutils gcc linux-headers make musl-dev util-linux-dev openssl-dev curl-dev g++ bash git perl libunwind-dev + ``` + +* Устанавливаем язык программирования Golang по инструкции с [официального сайта](https://go.dev/doc/install) + + +## Компиляция + +1. Копируем репозиторий + ```sh + $ git clone https://source.futriix.ru/gvsafronov/rfut + ``` +2. Переходим в каталог с исходном кодом src + ```sh + $ cd rfut/ + ``` +3. Компилируем Futriix с помощью утилиты Make + ```sh + $ cargo build + ``` + +> [!WARNING] +> **Rfut также может быть скомпилирован для следующих операционных систем: `Linux`, `OSX`, `Open Indiana`, `FreeBSD`, но сборка для этих операционных систем не проводилась!!!** + + +## Вклад + +Вклады — это то, что делает сообщество открытого исходного кода таким замечательным местом для обучения, вдохновения и творчества. Любой ваш вклад **очень ценится**. + +Если у вас есть предложение, которое могло бы улучшить ситуацию, создайте форк репозитория и создайте запрос на включение. Также можно просто открыть задачу с тегом «улучшение». + + +1. Форкните проект +2. Создайте свою ветку функций (`git checkout -b Feature/AmazingFeature`) +3. Зафиксируйте свои изменения (git commit -m 'Add some AmazingFeature'`) +4. Отправьте в ветку (`git push main Feature/AmazingFeature`) +5. Откройте запрос на включение + + +## Контакты + +Григорий Сафронов - [E-mail](gvsafronov@yandex.ru) + +Ссылка на Интеллектуальный помощник - [FutBot](https://t.me/Futriix_bot) + +

(К началу)