🎉smart-http v1.1.20 版本发布


1、smart-http 简介

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

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

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

模块介绍

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

2、 版本更新

Maven

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

本次更新内容

  1. smart-socket 升级至 1.6.1

  2. HttpRouteHandler 支持自定义默认处理器。

  3. restful 模块新特性:
    • 支持 classpath 路径下的前端静态资源文件加载。

    • 新增 inspect 特性用于 Http 请求的预处理。

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.connect();
        httpClient.get("/")
                .onSuccess(response -> System.out.println(response.body()))
                .onFailure(Throwable::printStackTrace)
                .send();
    }
}

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-broker
    基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker 服务。

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

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


相關推薦

2022-10-21

smart-http v1.1.17 已经发布,轻量级的开源 HTTP 服务器。 此版本更新内容包括: 优化异常HTTP请求的堆栈信息以及响应报文输出。 补充单元测试用例。 合并PR: chunked 检测,去掉对 method 的限制 过滤 byte[0] 的写入,避免

2022-10-07

smart-http v1.1.16 已经发布,轻量级的开源 HTTP 服务器。 此版本更新内容包括: 升级 smart-socket 至 1.5.22 改进 HTTP 解码算法 新增试验性质模块 smart-http-restful 合并PR: 添加logger.info预判 扩展WebSocketResponse,支持写byte[]slice

2023-10-20

的前两天),相约开源PHP办公室,我们一起聊 AI!>>> 1、smart-http 简介 smart-http 是一款可编程式 HTTP 应用微内核。它是目前市面上为数不多即能严格准守 RFC2616 规范,又兼顾卓越性能的 Http 服务器。 smart-http 建立在自研的通信

2023-11-18

官网将推出全新的学习频道:Solon Faas 开发。 (5)设定 Smart-Http 为 solon-api 的默认 http-server(它也打磨几年了) smart-http ?它可能是国内唯一完整支持 http 1.1 协议的原创 http-server。换它,国产纯血度大升级! Solon 是什么框架

2023-03-09

千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web服务。 smart-servlet 基于 smart-http 实现的 Servlet 3.1 容器服务。 smart-broker 基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker 服务。 smart-fl

2023-03-09

千多行代码,轻松实现百万级长连接的 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 服务。

2023-07-01

千多行代码,轻松实现百万级长连接的 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 服务。

2023-01-16

千多行代码,轻松实现百万级长连接的 AIO 通信框架。 smart-http 基于 smart-socket 实现的 HTTP/1.1 web服务。 smart-servlet 基于 smart-http 实现的 Servlet 3.1 容器服务。 smart-broker 基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker 服务。 组

2022-11-25

件扩展容器的服务能力。 一、架构设计 smart-servlet 在 smart-http 的基础之上,通过继承 HttpHandle 实现了 Servlet 规范。这意味着任何 smart-http 服务都可以通过单独引入 smart-servlet 核心包的方式,将普通的 http 应用改造成 servlet 应用

2023-11-13

能力。 企业管理后台新增系统参数配置功能。 升级 smart-http 至 1.3.5。 升级 smart-socket 至 v1.5.36。 发版详情:https://mp.weixin.qq.com/s/d_2kabxIwjWtLBhcklI8kw 详情查看:https://gitee.com/smartboot/smart-mqtt/releases/v0.32

2023-06-06

千多行代码,轻松实现百万级长连接的 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 服务。

2023-10-17

千多行代码,轻松实现百万级长连接的 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 服务。

2023-10-28

千多行代码,轻松实现百万级长连接的 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 服务。

2022-07-05

,我们目前维护的开源项目除了这款 AIO 通信框架,还有 smart-http、smart-servet,以及现阶段重点投入的 smart-mqtt。 对于smart-mqtt,我们规划通过 GraalVM 将 Java 应用编译成原生镜像,使其更好的部署于边缘场景。该设想存在较多的技