В этом проекте представлен легковесный фреймворк для HTTP-сервера, написанный на языке Rust. Фреймворк использует TcpStream Rust и предоставляет простые и удобные API для приема и обработки HTTP-запросов. С помощью этого проекта можно создать HTTP-сервер всего за несколько строк кода.
В этом проекте используется Rust 1.75
- Многопоточное выполнение (встроенный пул потоков)
- Поддержка проксирования статических ресурсов
- Возможность настройки заголовков ответа
- Поддержка маршрутизации
- Использование serde (сериализация структур данных)## 4. Простое использование
#[derive(Serialize, Deserialize)]
struct Stu {
name: String,
age: u8,
id: u32
}
fn main() {
// Создание экземпляра сервера, параметр new() - количество потоков
let mut server = Server::new(4);
// Регистрация обработчика запросов, первый параметр - метод HTTP-запроса
// второй параметр - путь маршрутизации
// третий параметр - Box для функции-обработчика
server.register_handler(HttpMethod::Get, "/json", Box::new(|mut ctx| {
// Разрешение кросс-оригинального доступа
ctx.get_response().allowed_cross_origin();
// Отправка JSON-данных
send_json(&mut ctx, &Stu { name: "abc".to_string(), age: 33, id: 28798438 }, HttpStatus::OK).unwrap();
}));
// Запуск сервера
run(server, "127.0.0.1:8080");
// Посетите http://127.0.0.1:8080/json, чтобы получить JSON-строку
}
```2. Создание простого прокси-сервера для статических ресурсов (html, jpg/jpeg/png, css, js)
```rust
fn main() {
// Получение экземпляра сервера
let mut server = Server::new(4);
// Регистрация обработчика статических ресурсов
server.register_static_resource("путь к вашему ресурсу", "/static");
// Запуск сервера
run(server, "127.0.0.1:8080");
// Посетите 127.0.0.1:8080/static/example
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )