149 lines
7.7 KiB
Markdown
149 lines
7.7 KiB
Markdown
<!-- Improved compatibility of К началу link: See: https://github.com/othneildrew/Best-README-Template/pull/73 -->
|
||
<a id="readme-top"></a>
|
||
<!--
|
||
*** Thanks for checking out the Best-README-Template. If you have a suggestion
|
||
*** that would make this better, please fork the repo and create a pull request
|
||
*** or simply open an issue with the tag "enhancement".
|
||
*** Don't forget to give the project a star!
|
||
*** Thanks again! Now go create something AMAZING! :D
|
||
-->
|
||
|
||
|
||
<!-- PROJECT LOGO -->
|
||
<br />
|
||
<div align="center">
|
||
<!-- <a href="https://github.com/othneildrew/Best-README-Template"> -->
|
||
<img src="Logo-Futriix.png" height=100></img>
|
||
</a>
|
||
|
||
<h3 align="center">Futriix</h3>
|
||
|
||
<p align="center">
|
||
Проект Futriix основан на базе проекта KeyDB <br>
|
||
Futriix's (команды futriix по большей части совпадают с командами KeyDB)
|
||
<br />
|
||
<a href="https://docs.keydb.dev/"><strong>Изучить полную документацию</strong></a>
|
||
<br />
|
||
<br />
|
||
<!-- <a href="">Сообщить об ошибке</a>
|
||
·
|
||
<!-- <a href="">Предложение новой функциональности</a> -->
|
||
</p>
|
||
</div>
|
||
|
||
## Краткая документация проекта Futriix
|
||
|
||
<!-- TABLE OF CONTENTS -->
|
||
<br>
|
||
<!-- <details> -->
|
||
<summary><b>Содержание</b></summary></br>
|
||
<ol>
|
||
<li>
|
||
<a href="#о-проекте">О проекте</a>
|
||
<li><a href="#лицензия">Лицензия</a></li>
|
||
<li><a href="#основные-термины">Основные термины</a></li>
|
||
<li><a href="#подготовка">Подготовка</a></li>
|
||
<li><a href="#компиляция">Компиляция</a></li>
|
||
<li><a href="#вклад">Вклад</a></li>
|
||
<li><a href="#контакты">Контакты</a></li>
|
||
</ol>
|
||
<!-- </details> -->
|
||
|
||
<!-- ABOUT THE PROJECT -->
|
||
## О проекте
|
||
|
||
Rfut - Это модуль, написанный на языке Rust, обеспечивающий создание кластера для субд Futriix.
|
||
Futriix является резидентной субд, т.е. хранящей свои данные в оперативной памяти, с их периодическим сохранением на внутренний носитель: HDD (жёсткий диск) или SSD-накопитель.
|
||
|
||
|
||
<!-- LICENSE -->
|
||
## Лицензия
|
||
|
||
Проект распространяется под 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`, но сборка для этих операционных систем не проводилась!!!**
|
||
|
||
<!-- CONTRIBUTING -->
|
||
## Вклад
|
||
|
||
Вклады — это то, что делает сообщество открытого исходного кода таким замечательным местом для обучения, вдохновения и творчества. Любой ваш вклад **очень ценится**.
|
||
|
||
Если у вас есть предложение, которое могло бы улучшить ситуацию, создайте форк репозитория и создайте запрос на включение. Также можно просто открыть задачу с тегом «улучшение».
|
||
|
||
|
||
1. Форкните проект
|
||
2. Создайте свою ветку функций (`git checkout -b Feature/AmazingFeature`)
|
||
3. Зафиксируйте свои изменения (git commit -m 'Add some AmazingFeature'`)
|
||
4. Отправьте в ветку (`git push main Feature/AmazingFeature`)
|
||
5. Откройте запрос на включение
|
||
|
||
<!-- CONTACT -->
|
||
## Контакты
|
||
|
||
Григорий Сафронов - [E-mail](gvsafronov@yandex.ru)
|
||
|
||
Ссылка на Интеллектуальный помощник - [FutBot](https://t.me/Futriix_bot)
|
||
|
||
<p align="right">(<a href="#readme-top">К началу</a>)</p>
|