Горячие клавиши

← и →: предыдущая и следующая глава

S или /: поиск по книге

?: показать эту подсказку

Esc: закрыть подсказку или поиск

Установка

Как получить библиотеку и убедиться, что она встала. Это первый шаг обоих быстрых стартов: Rust, Python.

Открытая альфа: интерфейс до беты может меняться. Перед первой заявкой на счете прочитайте Перед боевым счетом. Код открыт: https://github.com/runinfra/brokapi. Ниже в каждом разделе команда для пакета и для самой свежей версии из репозитория.

Что понадобится

RustPython
ЯзыкRust 1.88 или новее (редакция 2024)Python 3.10 или новее. Пакет один на все версии (abi3)
Инструментыcargo (идет вместе с Rust, ставится через rustup)pip, лучше виртуальное окружение
Для установки из репозиторияgitgit и Rust 1.88 или новее: расширение собирается на месте, сборщик maturin подтянется сам. Из PyPI Rust не нужен на Linux (x86_64, aarch64), macOS и Windows: там готовые пакеты

Брокеры включаются флагами, как у tokio: bcs, tbank, finam, alor, bybit, можно несколько. В Python все брокеры уже в пакете.

Rust

Флаг выбирает брокера, здесь БКС:

cargo add brokapi --features bcs

Самая свежая версия, из репозитория:

cargo add --git https://github.com/runinfra/brokapi brokapi --features bcs

Обе команды добавляют зависимость в Cargo.toml. Для программ из быстрого старта нужны еще tokio и dotenvy:

cargo add tokio --features full
cargo add dotenvy

Из клона репозитория (без доступа в сеть к GitHub во время сборки, например на закрытой машине):

[dependencies]
brokapi = { path = "../brokapi", features = ["bcs"] }

Проверка: cargo build собирает проект без ошибок (первая сборка занимает несколько минут: компилируются зависимости). В коде все лежит под brokapi::: общее в brokapi::core и brokapi::runtime, брокеры в brokapi::bcs, brokapi::tbank, brokapi::finam, brokapi::alor, brokapi::bybit. Дальше: быстрый старт на Rust.

Python

Готовые пакеты есть для Linux (x86_64 и aarch64), macOS (Intel и Apple silicon) и Windows, на остальных системах pip соберет расширение сам (нужен Rust):

python -m venv .venv && . .venv/bin/activate
pip install brokapi

Самая свежая версия, из репозитория (нужен Rust: расширение собирается при установке, это несколько минут):

python -m venv .venv && . .venv/bin/activate
pip install "git+https://github.com/runinfra/brokapi#subdirectory=crates/python"

Из клона репозитория: pip install ./crates/python.

pip install brokapi дает только библиотеку для Python. Команды brokapi (служба Gateway, brokapi check, brokapi cancel-all) после него нет: программа ставится отдельно, см. Программа brokapi (Gateway) ниже. Имя brokapi одно у библиотеки на Rust, пакета для Python и программы.

Проверка:

python -c "import brokapi; print(brokapi.__version__)"

Должен напечататься номер версии. Не напечатала: смотрите таблицу ниже. Дальше: быстрый старт на Python.

Если что-то пошло не так

Что видноЧто значитЧто делать
Git спрашивает имя и пароль или пишет Repository not foundОпечатка в адресе репозиторияСверить адрес: https://github.com/runinfra/brokapi. Или ставить пакет: cargo add brokapi, pip install brokapi
error: package ... requires rustc 1.88Версия Rust старее нужнойrustup update
pip пишет, что не нашел cargo или rustc, при установке из репозиторияРасширение Python собирается из исходников, нужен RustПоставить Rust через rustup и повторить
ModuleNotFoundError: No module named 'brokapi'Пакет поставлен в другое окружениеАктивировать то окружение, в которое ставили (. .venv/bin/activate), и проверить python -m pip show brokapi
could not find brokapi-gateway in registry у cargo install brokapi-gatewayНе указана версия: у альфы нет стабильного выпускаДобавить --version, как в разделе «Через cargo»
the crate brokapi could not be found in registry index у cargo add brokapiУстарел индекс crates.io на машине или старый cargorustup update и повторить. Или ставить из репозитория (команда выше)

Программа brokapi (Gateway)

Gateway - это программа brokapi: служба и команды в одном бинарнике (что это). Ставится готовым файлом (Rust не нужен) или через cargo install.

Готовый файл

Файлы лежат на странице выпусков, в выпуске v0.1.0-alpha.5 и в каждом следующем. В выпуске пять архивов и файл с суммами SHA256SUMS:

СистемаАрхив
Linux x86_64brokapi-0.1.0-alpha.5-linux-x86_64.tar.gz
Linux aarch64 (ARM)brokapi-0.1.0-alpha.5-linux-aarch64.tar.gz
macOS, процессор Intelbrokapi-0.1.0-alpha.5-macos-x86_64.tar.gz
macOS, Apple silicon (M1 и новее)brokapi-0.1.0-alpha.5-macos-arm64.tar.gz
Windows x86_64brokapi-0.1.0-alpha.5-windows-x86_64.zip

Файлы для Linux статические: им не нужна определенная версия glibc, они запускаются на Debian, Ubuntu, RHEL, Alpine и в пустом контейнере. Файл для Windows не просит установить Visual C++. Файлы не подписаны сертификатом разработчика, поэтому macOS и Windows могут предупредить о неизвестном издателе: сверьте сумму (ниже) и подтвердите запуск.

Linux и macOS, на примере Linux x86_64 (для другой системы замените имя архива):

V=0.1.0-alpha.5
F=brokapi-$V-linux-x86_64.tar.gz
curl -fLO https://github.com/runinfra/brokapi/releases/download/v$V/$F
curl -fLO https://github.com/runinfra/brokapi/releases/download/v$V/SHA256SUMS
grep "$F" SHA256SUMS | sha256sum -c -        # на macOS: shasum -a 256 -c -
tar -xzf $F
mkdir -p ~/.local/bin && cp brokapi-$V-linux-x86_64/brokapi ~/.local/bin/

Последняя команда кладет программу в ~/.local/bin: этот каталог должен быть в PATH (можно любой другой каталог из PATH). Строка с sha256sum должна ответить OK. Если на macOS браузер скачал архив сам и система не дает запустить brokapi, снимите пометку скачанного файла: xattr -d com.apple.quarantine ~/.local/bin/brokapi. Через curl пометки нет.

Windows, PowerShell:

$V = "0.1.0-alpha.5"
$F = "brokapi-$V-windows-x86_64.zip"
curl.exe -fLO "https://github.com/runinfra/brokapi/releases/download/v$V/$F"
curl.exe -fLO "https://github.com/runinfra/brokapi/releases/download/v$V/SHA256SUMS"
(Get-FileHash $F -Algorithm SHA256).Hash.ToLower()   # эта сумма должна совпасть
Select-String -Path SHA256SUMS -Pattern $F           # с суммой в этой строке
Expand-Archive $F -DestinationPath .

Дальше положите brokapi-0.1.0-alpha.5-windows-x86_64\brokapi.exe в каталог из PATH (или вызывайте по полному пути). В архиве рядом лежат README.md и лицензии.

Через cargo

Нужен Rust 1.88 или новее. Версия предварительная (альфа), поэтому номер указывается явно: без --version cargo install ищет только стабильные выпуски и ответит, что крейта нет.

cargo install brokapi-gateway --version 0.1.0-alpha.5 --locked

Сборка занимает несколько минут. Бинарник brokapi попадает в ~/.cargo/bin.

Самая свежая версия, из клона репозитория:

git clone https://github.com/runinfra/brokapi
cd brokapi
cargo install --path crates/gateway --locked

Проверка

brokapi --version

Должно напечататься brokapi 0.1.0-alpha.5 (номер как у библиотеки). Не напечатало: убедитесь, что каталог с файлом есть в PATH (для cargo install это ~/.cargo/bin), а при ошибке сборки смотрите таблицу выше (rustc, cargo). Дальше: быстрый старт Gateway.

Если вы пишете бота на Rust и вам нужен только клиент гейтвея, программа не нужна: Подключить бота.

Листать можно клавишами Влево и Вправо.

brokapi by RunInfra