首页 > 其他分享 >kore 简单试用

kore 简单试用

时间:2023-12-04 10:07:21浏览次数:26  
标签:compose kore 试用 conf 简单 docker hello kodev

前边有简单介绍过kore web 框架,以下是一个简单的试用

本地开发环境

基于brew 安装的kore,同时基于clion 开发,为了方便本地使用配置了一个简单的CMakeLists.txt 文件,方便代码提示

  • 安装kore
    安装之后kore 会提供kore 启动命令以及kodev 方便本地开发以及构建的
brew install kore

简单项目

  • 项目结构
├── CMakeLists.txt
├── Dockerfile
├── README.md
├── assets
├── cert
│   ├── key.pem
│   └── server.pem
├── conf
│   ├── build.conf
│   └── hello.conf
├── docker-compose.yaml
└── src
    └── hello.c
├── Dockerfile
  • 代码说明
    代码基于docker-compose 进行构建以及运行
    Dockerfile
    注意kodev 项目的workdir 需要和构建的保持一致,否则kodev 会有提示不是一个kodev 项目的问题

 

FROM kore/kodev:kodev as base
 
WORKDIR /hello
 
COPY . /hello
 
RUN kodev build
 
 
FROM kore/kore:4.2.3
WORKDIR /app
COPY --from=base /hello/hello.so /app/hello.so
COPY conf/hello.conf /app/conf/hello.conf
EXPOSE 8888
ENTRYPOINT ["kore","-f", "-c", "/app/conf/hello.conf"]
src/hello.c 一个简单的静态页面输出

#include <kore/kore.h>
#include <kore/http.h>
 
int     page(struct http_request *);
 
int
page(struct http_request *req)
{
    static char     *html = "<html><body><h1>Reload this page</h1></body></html>";
    http_response(req, 200, html, strlen(html));
    return (KORE_RESULT_OK);
}
配置,kore 使用了类似nginx 模式的配置,同时提供了基于共享库的加载
conf/hello.conf

 
# hello configuration
 
server no_tls {
    bind 0.0.0.0 8888
    tls no
}
 
load        ./hello.so
 
domain * {
    attach      no_tls
    #certfile   cert/server.pem
    #certkey        cert/key.pem
 
    route / {
        handler page
        methods GET
    }
 
}

 

WORKDIR /hello

构建&运行效果

  • 构建
docker-compose build
  • 运行
docker-compose up -d
  • 效果

kore 简单试用_html

说明

kore 是比较方便,但是目前在基于官方提供的docker 镜像构建复杂项目的时候会有一些问题(依赖的问题,应该可以通过build.conf 解决)
完整示例项目我已经push 到github 了可以参考

参考资料

https://github.com/rongfengliang/kore_learning
https://github.com/jorisvink/kore
https://github.com/jorisvink/kore-docker
https://docs.kore.io/4.2.0/applications/acme.html

标签:compose,kore,试用,conf,简单,docker,hello,kodev
From: https://blog.51cto.com/rongfengliang/8673374

相关文章

  • kore可扩展安全的Web 应用程序框架
    kore是基于c开发的web框架,可以让我们使用c以及python开发webapi,主要的特点是安全以及可扩展主要特性SNI支持http1.1支持websocket支持默认TLS支持可选后台任务内置参数校验基于acme的自动https权限分离设计可选异步pg访问模块热加载worker进程沙箱支持(基于pledge以及s......
  • emscripten cmake 简单尝试
    emscripten提供了比较完整的工具链,包含了对于make以及cmake等工具的支持,以下是一个简单的c代码转换为wasm的demo同时基于cmake进行项目管理参考项目项目结构├──CMakeLists.txt├──README.md├──app.js└──src├──add.c├──add.h└─......
  • Minitab 2021:让数据分析更简单、更高效
    Minitab2021是一款广泛应用于统计分析、数据管理和质量改进的软件。作为一款全球领先的统计分析管理软件,它为用户提供了全面而高效的数据分析工具,适用于各种行业和领域。点击获取MinitabMinitab2021具有强大的数据处理和分析能力,可以进行各种统计分析、回归分析、实验设计、......
  • 鸿蒙应用开发笔记[2]-简单界面布局
    摘要在HarmonyOS4开发一个应用,在ArkTS的Stage开发范式下简单进行界面布局.平台信息DevEcoStudio4.0Release构建版本:4.0.0.600,builtonOctober17,2023HarmonyOS4CompileSDK“3.1.0(API9)”原理简介ArtTS的Stage开发框架[https://developer.harmonyos.com/c......
  • 简单了解专线网络
     由于最近接触了PathN专线网络,所以了解一下专线网络的内容。 首先介绍一个专线和普通家庭网络概念专线网络:依托国内骨干网以及宽带城域网资源,提供专线接入方式,满足企业集团客户接入互联网或者地方互联网络,开展各种应用的业务家庭网络:普通的用户向电信运营商申请接入的公用......
  • 简单Echo服务器的实现
    简单Echo服务器的实现1.要求实现Echo服务器的客户端/服务器程序,客户端通过网络连接到服务器,并发送任意一串英文信息,服务器端接收信息后,将每个字符转换为大写并回送给客户端显示。这个项目的主要目的:熟悉C语言的网络编程(Socket),为开发更高级的网络应用打好基础。2.......
  • Spring Boot 3.2.0 试用CRaC,启动速度提升3到10倍
    CRaC(CoordinatedRestoreatCheckpoint)。CRaC是OpenJDK项目,能够把运行中的JVM,将其状态(包括您的应用程序)存储到磁盘中。然后,在另一个时间点,您可以从保存的检查点将JVM恢复到内存中。通过这种方式,可以启动一个应用程序,预热它,并创建一个检查点。从保存的检查点恢复到内存主要......
  • 最简单的方式解决Intel大小核调度问题
    现在Intel的大小核调度逻辑主要有个问题是窗口不在焦点可能会被扔到小核。修改完后的逻辑:无论前台还是后台,无论轻负载还是高负载,全部优先使用大核,此时处理器和你关闭小核逻辑差不多。只有大核全部满载,忙不过来时,小核会开始介入,例如多核压缩,压制,跑分等。我个人觉得这种调度非常完......
  • 02-简单的C/S阻塞模型
    C/S阻塞模型是指客户端/服务器阻塞模型,它描述了一种基于阻塞的网络通信方式。在阻塞模型中,客户端发送请求给服务器,并等待服务器的响应。在等待服务器响应的过程中,客户端的操作会被阻塞,直到服务器响应返回或超时。服务器服务器基本流程如下:启动网络库创建服务器Socket绑定服......
  • 创建简单的WCF服务
    创建Service项目在VisualStudio中新建项目,ClassLibrary(.NETFramework),叫MyServie。添加WCFService在创建好的项目中添加WCFService,命名为MyService此时会有一个System,ServiceModel出现在引用中。实现MyService类中的DoWork方法namespaceMyService{publiccl......