【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Suave 1.0 发布,一个面向 F#的 Web 服务器和开发库

  • 2016-01-29
  • 本文字数:818 字

    阅读完需:约 3 分钟

近日,Suave 1.0 发布,为.NET 开发带来了一个新的 Web 开发库。Suave 包含一个轻量级的、完全异步的 Web 服务器以及一个描述 HTTP 处理管道的语义模型。Suave 可以运行在多种平台和操作系统上,包括 Windows、OSX、Linux、.NET 和 Mono。虽然可以在任何.NET 语言中使用,但 Suave“连结符(combinators)”和类型是设计用于 F#的。

Suave 的编程模型是借助连结符使用较小的函数创建较大的函数。Suave 维护者 Henrik Feldt 是这样解释的:

连结符是高阶函数,可以用不同的方式组合,达到不同的效果,生成 HTTP 响应。

Suave 有像OK "Hello"notFound这样的连结符及其他许多底层 HTTP 结构,使开发人员可以编写任何种类的 Web 服务。在 Suave 中,我们使用类型WebPart操作函数域,其中type WebPart = HttpContext -async<HttpContext option>

类型option为我们使用 success/fail 语义及解析成不同的路由提供了可能。

我们使用一个名为choose的函数,它接受一个WebPart列表,并按顺序为每个WebPart提供一个HttpContext,直到其中一个WebPart返回Some HttpContextHttpContext中包含已经编码好的响应,服务器将发送给 HTTP 客户端。

我们还使用一个>=>操作符组合WebPart及解析路由。

下面是使用 Suave 实现经典的“Hello World!”示例。该应用程序会使用“Hello World!”响应它收到的所有请求。

复制代码
open Suave
startWebServer defaultConfig (Successful.OK "Hello World!")

下面的例子展示了如何匹配路由以及没有匹配的路由时返回 404 页面:

复制代码
let app : WebApp =
choose[
path "/foo" >=> OK "foo"
path "/bar" >=> OK "bar"
notFound "no handlers found."
]
startWebServer defaultConfig app

Suave 是一个开源项目,托管在 GitHub 上。 Suave 官方网站提供了文档和示例。此外, InfoQ 还对 Henrik Feldt 进行了更广泛的采访,他就 Suave 是什么以及如何使用讲述了更多的细节。

查看英文原文: Release 1.0 of Suave, a Web Server and Development Library for F#

2016-01-29 18:001444
用户头像

发布了 1008 篇内容, 共 375.1 次阅读, 收获喜欢 341 次。

关注

评论

发布
暂无评论
发现更多内容

重磅更新!Sermant 1.2.0 release版本新特性速览

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟

7 款用于训练 AI 模型的合成数据工具

3D建模设计

人工智能模型 合成数据 UnrealSynth

速谈Beyond Compare使用的六个步骤

晴雯哥

混沌工程GameDay

腾讯云混沌演练平台

混沌工程 GameDay 稳定性建设 混沌演练

「燃情大促,年终钜惠」,家人们这一波可以冲!

融云 RongCloud

活动 服务 IM RTC 融云

Luminar Neo(超强AI图像编辑器)特别版下载mac/win

影影绰绰一往直前

Luminar Neo破解版 Luminar Neo下载 Luminar Neo mac

稳定扩散的高分辨率图像合成

3D建模设计

AI自动纹理 稳定扩散

服务器大揭秘:美国服务器为何成为热门选项?

一只扑棱蛾子

美国服务器

DAPP链上质押挖矿分红开发原理

西安链酷科技

区块链 dapp 去中心化 挖矿

知识图谱与大模型相结合的3种方法,1+1>2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 大语言模型

Java应用程序性能开发工具:JProfiler 14 「Mac」附 注册码

彩云

java开发工具 JProfiler 14

利用Docker容器化构建可移植的分布式应用程序

互联网工科生

Docker 容器化

购买小间距LED显示屏需要考虑8个方面

Dylan

领域 LED LED显示屏 实用指南

终身学习支持非结构化场景 | KubeEdge-Ianvs v0.2 发布

华为云原生团队

云计算 容器 云原生 边缘计算 kubeedge

荣耀推送服务 - 发送下行消息能力指导

荣耀开发者服务平台

基础服务 实时推送 API 接口 荣耀开发者服务平台 开放能力

GameFi游戏NFT链游开发系统搭建技术

西安链酷科技

区块链 dapp 去中心化 链游开发

流行的矿机系统定制开发 | IPFS虚拟矿机源码开发 | 矿机模式挖矿搭建功能开发

V\TG【ch3nguang】

VMware Workstation 17安装教程之设置系统模式

小齐写代码

如何调用API获取你想要的数据

Noah

容器安全和安全运行时的重要性

Geek_2d6073

AI PC的时代,英特尔和联想、爱奇艺是怎样玩转AI的?

E科讯

PDF编辑器:Acrobat Pro DC 2023 「Mac」

彩云

PDF编辑 Acrobat Pro DC 2023

混沌工程稳态假说

腾讯云混沌演练平台

混沌工程 稳定性保障

Go的命令行工具开发:使用Cobra库

这我可不懂

cobra go语言

UltraEdit for mac(文本编辑器) v21.00.0.12中文完整版

mac

UltraEdit 文本编辑器 苹果mac Windows软件

堪比文件传输助手!解决文本、图片、视频、音乐跨设备同步难题!

彭宏豪95

软件推荐 文件传输 数据同步 在线白板 浏览器插件

AI 革命:最佳 txt 转纹理工具

3D建模设计

AI自动纹理 AI纹理

科技企业正成为外交名片

TE智库

新能源

大模型 | 今天聊聊大语言模型幻觉(AI Hallucinations)

澳鹏Appen

数据标注 大模型 生成式AI LLM 大模型幻觉

去中心化交易所开发

西安链酷科技

区块链 去中心化 交易所 合约 合约数字货币

DeFi链上金融借贷系统开发 | DAPP区块链挖矿系统搭建

V\TG【ch3nguang】

Suave 1.0发布,一个面向F#的Web服务器和开发库_.NET_Pierre-Luc Maheu_InfoQ精选文章