🎉smart-http v1.2.0 版本发布

科技资讯 投稿 6300 0 评论

1、smart-http 简介

smart-http 是一款可编程式HTTP应用微内核。它是目前市面上为数不多即能严格准守 RFC2616 规范,又兼顾卓越性能的 Http 服务器。

smart-http 完全建立在自研的通信框架 smart-socket 之上,使其有着纯正的国产化血统。该项目对标的是 nginx,高性能、轻量化是其追求和坚持的目标。

严格意义上 smart-http 算不上是一个框架,它更像一个工具类库。开发人员可以基于它封装出契合特定场景的应用框架或解决方案。

模块介绍

模块 说明 代码量
smart-http-common 基础通用模块,包括枚举、日志、工具类 2300+
smart-http-client HTTP Client编解码和响应式编程设计 1400+
smart-http-server HTTP Server和WebSocket的编解码和应用层接口设计 2700+
smart-http-restful 基于smart-http-server的简易版 MVC模块(实验性 380+
smart-http-test 单测模块 1600+

2、 版本更新

Maven

<dependency>     <groupId>org.smartboot.http</groupId>     <artifactId>smart-http-server</artifactId>     <version>1.2.0</version> </dependency> <dependency>     <groupId>org.smartboot.http</groupId>     <artifactId>smart-http-client</artifactId>     <version>1.2.0</version> </dependency>

本次更新内容

    升级smart-socket至1.5.27。

  1. 更新Readme中的示例程序。

  2. 重构http解码器的接口设计。

  3. HTTP解码异常时抛出的异常由RuntimeException调整成DecoderException。

  4. HttpRequest新增isSecure接口,用于识别当前是否启用https。

  5. 提供HTTP解码算法基准性能测试的的jmh程序。

  6. 合并社区PR:升级fastjson版本到1.2.83,1.2.83版本之前存在代码执行漏洞风险,CVE-2022-25845

3、快速上手

3.1 HTTP 服务端

public class SimpleSmartHttp {     public static void main(String[] args {         HttpBootstrap bootstrap = new HttpBootstrap(;         bootstrap.httpHandler(new HttpServerHandler( {             @Override             public void handle(HttpRequest request, HttpResponse response throws IOException {                 response.write("hello smart-http<br/>".getBytes(;             }         }.setPort(8080.start(;     } }

3.2 WebSocket 服务端

public class WebSocketDemo {
    public static void main(String[] args {
        //1. 实例化路由Handle
        WebSocketRouteHandler routeHandle = new WebSocketRouteHandler(;

        //2. 指定路由规则以及请求的处理实现
        routeHandle.route("/", new WebSocketDefaultHandler( {
            @Override
            public void handleTextMessage(WebSocketRequest request, WebSocketResponse response, String data {
                response.sendTextMessage("接受到客户端消息:" + data;
            }
        };

        // 3. 启动服务
        HttpBootstrap bootstrap = new HttpBootstrap(;
        bootstrap.webSocketHandler(routeHandle;
        bootstrap.start(;
    }
}

3.3 Http客户端

public class HttpGetDemo {
    public static void main(String[] args {
        HttpClient httpClient = new HttpClient("www.baidu.com", 80;
        httpClient.get("/".header(.keepalive(false.done(
                .onSuccess(response -> System.out.println(response.body(
                .onFailure(Throwable::printStackTrace
                .done(;
    }
}

3.4 Restful

<dependency>
    <groupId>org.smartboot.http</groupId>
    <artifactId>smart-http-restful</artifactId>
    <version>${smarthttp.version}</version>
</dependency>
@Controller
public class RestfulDemo {

    @RequestMapping(value = "/hello", method = RequestMethod.GET
    public String helloworld( {
        return "hello world";
    }

    public static void main(String[] args throws Exception {
        RestfulBootstrap bootstrap = RestfulBootstrap.getInstance(.controller(RestfulDemo.class;
        bootstrap.bootstrap(.setPort(8080.start(;
    }
}

smartboot开源组织,一个容易被误认为是在“重复造轮子”的低调组织。曾获得 2020 年度 OSC 中国开源项目「优秀 Gitee 组织 」荣誉。

该组织内的明星项目包括:

    smart-socket
    历时5年精炼出2千多行代码,轻松实现百万级长连接的 AIO 通信框架。

  • smart-http
    基于 smart-socket 实现的 HTTP/1.1 web服务。

  • smart-servlet
    基于 smart-http 实现的 Servlet 3.1 容器服务。

  • smart-mqtt
    基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。

  • smart-flow
    一款具备可观测性的轻量级业务编排框架。

组织地址:https://smartboot.tech/
代码仓库:https://gitee.com/smartboot

编程笔记 » 🎉smart-http v1.2.0 版本发布

赞同 (38) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽