当前位置: 首页 > 软件库 > 服务器软件 > HTTP服务器 >

httpbeast

Nim 实现的高性能多线程 HTTP 服务器
授权协议 MIT
开发语言 Nim
所属分类 服务器软件、 HTTP服务器
软件类型 开源软件
地区 不详
投 递 者 彭仲卿
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

httpbeast 是使用 Nim 语言编写的高性能、多线程 HTTP 1.1 服务器。

主要特性

  • 基于 Nimselectors模块构建,可以有效地利用 Linux 上的 epoll 和 macOS 上的 kqueue
  • 自动并行化,只需确保编译时添加--threads:on参数即可
  • 支持 HTTP pipelining
  • 按需使用的解析器,可用于仅解析请求的数据
  • 与 Nim 的集成asyncdispatch支持在必要时在请求回调中使用 async/await

示例代码

创建helloHttp.nimble文件:

# Package

version       = "0.1.0"
author        = "Your Name"
description   = "Your Description"
license       = "MIT"
srcDir        = "src"
bin           = @["helloHttp"]


# Dependencies

requires "nim >= 1.0.0"
requires "httpbeast >= 0.3.0"

创建src/helloHttp.nim文件:

import options, asyncdispatch

import httpbeast

proc onRequest(req: Request): Future[void] =
  if req.httpMethod == some(HttpGet):
    case req.path.get()
    of "/":
      req.send("Hello World")
    else:
      req.send(Http404)

run(onRequest)

通过nimble c -r helloHttp.nim运行。

 相关资料
  • imi v1.0.13 版本新增了一个 Swoole\Coroutine\Http\Server 实现的协程服务器。需要 Swoole 4.4+ 才可使用该特性。 该特性是可选的,不影响以前使用的服务器模式。 使用协程服务器特性,依靠 Linux 系统的端口重用机制,系统级的负载均衡,可以让你的多进程 Http 服务处理请求的能力得到提升。 使用 ab,本机->虚拟机(双核+2进程)压测Hello

  • 本文向大家介绍C#实现多线程的Web代理服务器实例,包括了C#实现多线程的Web代理服务器实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现多线程的Web代理服务器。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 服务烧瓶应用程序“服务器”(懒惰加载) 环境:生产警告:这是一个开发服务器。不要在生产部署中使用它。改用生产WSGI服务器。 调试模式:打开 在http://0.0.0.0:9002/上运行(按Ctrl+C退出) 使用stat重新启动 调试器处于活动状态! 调试器PIN:314-390-242线程线程中的异常-1:Traceback(最近的调用为last):文件“/home/user/downlo

  • 本文向大家介绍python 多线程实现检测服务器在线情况,包括了python 多线程实现检测服务器在线情况的使用技巧和注意事项,需要的朋友参考一下 需要ping一个网段所有机器的在线情况,shell脚步运行时间太长,用python写个多线程ping吧,代码如下: 效果如下: 平一个网段只要2.7s左右,够快!!! 再给大家分享一个检测外网服务器的方法及代码 经常使用python检测服务器是否能pi

  • 本文向大家介绍Java编程实现多线程TCP服务器完整实例,包括了Java编程实现多线程TCP服务器完整实例的使用技巧和注意事项,需要的朋友参考一下 相关Java类 Socket public class Socket extends Object ServerSocket public class ServerSocket extends Object TCP服务器端 TcpServer.java

  • 我是个新手,如果你能给我建议的话,请告诉我。我有一个向客户端广播消息的服务器。然后客户端将回复发送回服务器。我想用单独的线程处理每个回复。每个回复都有mesage id和thread id。我如何用来自所有线程的信息填充一些结构,然后读取它 也从我的代码,它是正确地创建线程,而还是它存在某种方式来创建线程,只是如果我得到客户端的回复? 我是从正确的理解开始的吗? 非常感谢。

  • 本文向大家介绍用Python实现一个简单的多线程TCP服务器的教程,包括了用Python实现一个简单的多线程TCP服务器的教程的使用技巧和注意事项,需要的朋友参考一下  最近看《python核心编程》,书中实现了一个简单的1对1的TCPserver,但是在实际使用中1对1的形势明显是不行的,所以研究了一下如何在server端通过启动不同的线程(进程)来实现每个链接一个线程。 其实python在类的