- Rust 96.1%
- Nix 3.9%
| .github | ||
| crates | ||
| docs/images | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| rustfmt.toml | ||
| TDOCUMENTATION.md | ||
Ядро НБМ (API, Rust (Проект octopus-rs)
Исходный код ядра, то бишь API, Народного Банка Мемов, сердца экономики Мемного мира.
Кодовое название: microcore
Технологический стек
| Место в проекте | Технология |
|---|---|
| Язык программирования | Rust |
| Runtime | Теперь его нет |
| База данных | PostgreSQL |
| Архитектура | Монолитная, основанная на сервисах, отдельно сервер авторизации |
| Лицензия | GNU AGPLv3 |
Чем RS версия отличается от обычной (на .NET)
RS версия отличается тем, что это ядро банка, переписанное на Rust. Главными преимуществами являются:
- Меньшее потребление ресурсов. Проекты на Rust не требуют отдельного рантайма, как того требуют проекты, базирующиеся на платформе .NET. К тому же сам Rust пропагандирует zero-cost abstractions, то есть мы не должны платить своими ресурсами за абстракции, они трансформируются самим компилятором в такой же быстрый код, который мы бы написали сами вручную.
- Кстати, о скорости. Сам Rust известен тем, что он мега-быстрый, точнее проекты на нём более быстрые и оптимизированные, как раз из-за этого zero-cost abstractions.
- Большая лаконичность Rust'а и его надёжность. В таком языке как Rust, который очень сильно завязан на типах (особенно если вспомнить об алгебраических типах
enum), намного сложнее ошибиться. Также стоит вспомнить об отсутствии такой штуки какnull, его в Rust просто не существует, а также о том, что нет конструкцииtry/catch. Вместо них есть алгебраические типыOptionиResult. Благодаря этому намного легче писать надёжный код, так как сам язык к этому располагает. - Мне хочется просто научиться ему. Это тоже может сойти как причина.
Именно по этим причинам (их, на самом деле, больше) мне хочется и кажется релевантным переписать сей проект, который традиционно был на JS/TS или .NET, на Rust. Особенно учитывая, что это банк, хоть и игровой, а не реальный (мы же, всё таки, реализма также хотим)
!!! Предупреждение !!!
При публикациях форков, не оставляйте, пожалуйста секретных ключей и прочих штук, которые должны оставаться конфидициальными. Используйте для этого Переменные окружение, они же Environment Variables
Экономическая модель (РП документация)
- Стоимость валюты расчитывается от стоимости главной валюты (в нашем случае - Левро).
- Игровой год тождественнен 12 дням, соответственно 1 игровой месяц = 1 день.
- Торговля строится на предметах и услугах.
- Также имеются депозиты и кредиты
- Вложения (они же акции)
- Экономическая модель пытается быть реалистичной, при этом сохраняя относительную простоту.
- Имеются блоги и посты в них, с помощью этого могут быть реализованы новости и дайджесты
Спасибы:
-
Прошлые проекты-реализации Народного Банка Мемов (раннее Банка Мемного Социалистического Интернационала):
-
И потерянные навсегда версии...
-
Системы Автоматизированной Бюрократии (они же бот-банки, боты-паспортисты):
-
А также боты созданные на всяких проприетарных платформах (Бот-банк Гардернии, ранние версии бота Ловушниского)
-
И, конечно же, Торговой Мемной Лиге (ренне Банк Кекляндии)
-
Ну и, конечно же, новым банкам от этого же разработчика, которые тоже утеряны и заброшены...
Лицензия
Этот проект распространяется под лицензией GNU Affero General Public License v3.0 (GNU AGPLv3). Согласно условиям, если вы используете это ПО для предоставления сетевых услуг (SaaS), вы обязаны предоставить исходный код своей версии пользователям.
Проще говоря: Пиздить разрешается, закрывать нельзя