HTTP сервер под Android
Я люблю тишину. Программы пишу на максимально тихом ультрабуке. Часто вообще на планшете,подключенному к монитору если это разработка под android, или программы на javascript.
Так и возникла идея разместить на планшете сервер приложений и написать его на Rust. Писать будем под Windows , затем используем возможности Rust по кроскомпиляции.
Установим android-sdk и добавим в переменные среды переменную ANDROID_HOME с указанием пути к android-sdk.
Установим android-ndk и добавим в переменные среды переменную NDK_HOME с указанием пути к android-ndk.
Установим Apache Ant с http://ant.apache.org
Добавим в Rust возможность кроскомпиляции под android, для этого в консоли дадим команду rustup target add arm-linux-androideabi
В пакетный менеджер для rust, который называется Cargo ,добавим плагин cargo-apk . Команда - cargo install cargo-apk . Этот плагин умеет создавать apk для android, используя ant, командой cargo apk .
В качестве IDE я использую IntelliJ IDEA с плагином для Rust. Для компиляции под android, после создания нового проекта, добавим новую конфигурацию и в поле Command напишем apk .
В библиотеках Rust есть два достойных веб-сервера - Niсkel и Iron. Я выбрал Niсkel по причине схожести его архитектуры с веб-серверами на NodeJs , с которыми у меня большой опыт работы.
Для его установки добавим в Cargo.toml проекта
[dependencies.nickel]
version = "*"
Простой helloWorld, принимающий POST запросы будет виглядеть так.
const CON_STR:&'static str="192.168.1.1:8000"; pub fn main() { let mut server = Nickel::new(); server.post("/", middleware! { |req, mut res| let q = try_with!(res, req.form_body()); let sql=q.get("name").unwrap_or(""); "Нello ".to_string()+sql }); server.listen(CON_STR); }Особенности работы с базами данных и прочие тонкости опишу в последующих статьях.
Комментарии
Отправить комментарий