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); 
}
Особенности работы с базами данных и прочие тонкости опишу в последующих статьях.

Комментарии

Популярные сообщения из этого блога

Работа с глобальными переменными в Rust

IUP - библиотека элементов GUI

Виртуальный GUI на Rust