برنامه نویسی

ایجاد سرویس های وب با کارایی بالا با هایپرلن

در دوران دیجیتال امروز ، ایجاد خدمات وب با کارایی بالا و قابل اعتماد هدف هر توسعه دهنده است. امروز ، ما صمیمانه توصیه می کنیم زیرزمینی، یک چارچوب سرور HTTP با کارایی بالا و با کارایی بالا که برای ساده سازی توسعه خدمات شبکه شما طراحی شده است.

بررسی اجمالی پروژه

Hyperlane کاملاً در زنگ زدگی خالص با استفاده از کتابخانه استاندارد ساخته شده است و سازگاری واقعی متقابل پلت فرم را در سراسر ویندوز ، لینوکس و MACOS ارائه می دهد-با یک تجربه API سازگار در تمام سیستم عامل ها. این کار از زمان اجرا ناهمزمان Tokio برای ارتباطات شبکه یکپارچه بدون نیاز به وابستگی های خاص پلتفرم استفاده می کند.

ویژگی های کلیدی:

  • از درخواست HTTP تجزیه و تحلیل ، ایجاد پاسخ و ارتباطات TCP پشتیبانی می کند.
  • شامل پشتیبانی میان افزار برای هر دو درخواست و پاسخ ، و همچنین رویدادهای WebSocket و Server-Sent (SSE) برای ارتباطات انعطاف پذیر و کارآمد در زمان واقعی است.
  • یک طراحی API ساده و کاربر پسند ، توسعه دهندگان را قادر می سازد تا به سرعت شروع به کار و ساخت خدمات وب مدرن کنند.

شروع سریع

برای شروع استفاده از Hyperlane ، به سادگی آن را با دستور زیر به پروژه خود اضافه کنید:

cargo add hyperlane
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ما همچنین یک پروژه شروع سریع ، Hyperlane-Quick-Start را ارائه می دهیم تا به شما کمک کند تا به سرعت اولین برنامه هایپرلاین خود را تنظیم و اجرا کنید.

کلون پروژه:

git clone https://github.com/eastspire/hyperlane-quick-start.git
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

به فهرست پروژه بروید:

cd hyperlane-quick-start
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پروژه را اجرا کنید:

cargo run
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

همچنین می توانید سرویس را در پس زمینه اجرا کنید ، متوقف کنید یا مجدداً راه اندازی کنید:

# Run in the background
cargo run -d

# Stop the service
cargo run stop

# Restart the service
cargo run restart

# Restart in the background
cargo run restart -d
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مثال استفاده

مثال زیر نحوه راه اندازی میان افزار ، مسیریابی و پشتیبانی WebSocket را در یک برنامه سادهپرستانه نشان می دهد:

use hyperlane::*;

async fn request_middleware(ctx: Context) {
    let socket_addr: String = ctx.get_socket_addr_or_default_string().await;
    ctx.set_response_header(SERVER, HYPERLANE)
        .await
        .set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE)
        .await
        .set_response_header(CONTENT_TYPE, TEXT_PLAIN)
        .await
        .set_response_header("SocketAddr", socket_addr)
        .await;
}

async fn response_middleware(ctx: Context) {
    let _ = ctx.send().await;
}

async fn root_route(ctx: Context) {
    ctx.set_response_status_code(200)
        .await
        .set_response_body("Hello hyperlane => /")
        .await;
}

async fn websocket_route(ctx: Context) {
    let request_body: Vec<u8> = ctx.get_request_body().await;
    let _ = ctx.send_response_body(request_body).await;
}

fn error_handle(error: String) {
    eprintln!("{}", error);
    let _ = std::io::Write::flush(&mut std::io::stderr());
}

#[tokio::main]
async fn main() {
    let server: Server = Server::new();
    server.host("0.0.0.0").await;
    server.port(60000).await;
    server.enable_nodelay().await;
    server.disable_linger().await;
    server.http_line_buffer_size(4096).await;
    server.websocket_buffer_size(4096).await;
    server.error_handle(error_handle).await;
    server.request_middleware(request_middleware).await;
    server.response_middleware(response_middleware).await;
    server.route("https://dev.to/", root_route).await;
    server.route("/websocket", websocket_route).await;
    server
        .route("/test/:text", move |ctx: Context| async move {
            let param: RouteParams = ctx.get_route_params().await;
            panic!("Test panic {:?}", param);
        })
        .await;
    server.run().await.unwrap();
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

معیار عملکرد

ما معیارهای عملکردی را در هایپرلاین انجام دادیم تا عملکرد عالی آن را نشان دهیم. نتایج زیر با استفاده از wrk وت ab ابزارها

معیار WRK

دستور:

wrk -c360 -d60s http://127.0.0.1:60000/
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نتایج:

درجه چارچوب SWC
1 توکی 340130.92
2 زیرزمینی 324323.71
3 موشک 298945.31
4 stdlib stdlib 291218.96
5 جین (برو) 242570.16
6 برو stdlib 234178.93
7 node.js stdlib 139412.13

معیار AB

دستور:

ab -n 1000000 -c 1000 -r -k http://127.0.0.1:60000/
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نتایج:

درجه چارچوب SWC
1 توکی 308596.26
2 زیرزمینی 307568.90
3 موشک 267931.52
4 stdlib stdlib 260514.56
5 برو stdlib 226550.34
6 جین (برو) 224296.16
7 node.js stdlib 85357.18

مجوز و مشارکت

Hyperlane تحت مجوز MIT مجوز دارد. برای جزئیات بیشتر ، لطفاً به پرونده مجوز مراجعه کنید. مشارکتهای جامعه خوش آمدید! می توانید با ارسال مشکلات یا ایجاد درخواست های کشش شرکت کنید.

اگر سؤال دارید یا به کمک بیشتری نیاز دارید ، با نویسنده تماس بگیرید: root@ltpp.vip.

Hyperlane را انتخاب کنید – آینده عملکرد بالا و توسعه ساده را انتخاب کنید. سفر خود را از امروز شروع کنید و سرعت و راحتی هایپلاین را تجربه کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا