发布时间:2026/8/24 9:20:19
把Haskell进程搬到另一台机器上运行:Transient分布式计算实战(transient-universe) 把Haskell进程搬到另一台机器上运行Transient分布式计算实战transient-universe【免费下载链接】transientA full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)项目地址: https://gitcode.com/gh_mirrors/tr/transientTransient 是一个 Haskell 全栈响应式编程框架它的最大亮点是分布式计算你可以把同一个 Haskell 进程“原样”搬到另一台机器上运行无需回调、无需阻塞、无需手动网络编程。本文将带你从零认识这套框架理解并发/并行/事务如何组合并跑通第一个跨机器示例。为什么想把进程“搬”到另一台机器传统做法里跨机器计算通常意味着 一堆回调函数逻辑散落各处 阻塞式的 RPC 调用代码可读性差 消息协议手写维护容易出错Transient 的思路完全不同把“在别的节点上跑一段计算”变成一种一等的、可组合的语法。进程在节点之间移动就像在同一个函数里调用另一个函数一样自然。正如社区对其的评价“令人惊讶的是让计算跨越线程/节点运行是有多么毫不费力。”Transient 是什么无回调的全栈响应式框架Transient 是一个可扩展 Effects 单子内置并行、事件、异步 IO、非确定性、事务回溯、日志等全部主要效应并可以扩展新效应而无需叠加单子变换器因此组合性有保证。它的核心符号体系非常直观运算符表达的含义说明$/*/并发让多个计算同时发生\|并行Alternative 组合任一路径成功即可顺序线程、分布式进程、Web 组件的顺序执行换句话说普通 Haskell 程序里能做的组合、|、在含并发、事件、分布式的环境下依然可用——这正是它宣称的“无限制组合性”。 想深入看效应系统的实现可以从核心模块src/Transient/Internals.hs入手事务回溯逻辑在src/Transient/Backtrack.hs。分布式计算核心概念teleport、wormhole 与 clustered分布式原语如teleport、wormhole、runAt、clustered位于transient-universe包中基础框架本身提供线程、事件、事务等原语。几个关键概念runAt remote把一段计算调度到指定节点执行结果拿回来。这是“把进程搬到另一台机器”的最直接表达。clustered在集群的所有节点上同时运行同一段计算并聚合结果。️wormhole/teleport把长链路分布式事务组合、复用的“传送门”。事务是一等公民你可以在一个地方看到整个分布式逻辑而不是被 actor 模型拆成满屏事件回调。listen/initNode声明本地节点并启动网络监听程序即可加入集群。这些原语都是单子式的意味着它们可以随意嵌套、复用——这是与传统 actor 框架最大的区别。实战示例让计算跑在集群节点上下面这个极简示例控制台输入fire后从 N 个节点流式输出 “hello world”。main keep $ initNode $ inputNodes | distribStream distribStream do local $ option fire fire r - clustered . local . choose $ repeat hello world localIO $ print r只有几行但已经包含了节点初始化、多路组合|、跨节点聚合clustered、非确定性选择choose。再看一个真实的跨机器测试用例 tests/Test3.hs定义两个节点localhost与局域网主机在两个节点上各返回hello 或world组合出hello world并从 Linux 节点向 Windows 节点流式推送斐波那契数列let nodes [createNode localhost 2020, createNode 192.168.99.100 2020] onAll $ addNodes nodes -- 所有节点互相登记 listen localnode | ... -- 启动监听 r - mclustered $ return $ if os linux then hello else world可以看到同一份 Haskell 代码编译后在集群的每台机器上各执行属于自己 OS 平台的那一段——进程确实“搬”过去了而代码依然是纯粹的 Haskell。快速上手安装与运行步骤获取代码如需要克隆仓库地址为 https://gitcode.com/gh_mirrors/tr/transient git clone https://gitcode.com/gh_mirrors/tr/transient准备工具链安装 Haskell PlatformGHC 7.10.3 即可见 transient.cabal或使用 Stack / Nix。编译运行cabal install或stack build随后运行测试套件 tests/TestSuite.hs 验证环境。多节点实战在两台机器上分别编译同一程序按 tests/Test3.hs 中的方式传入节点地址即可看到分布式行为。 注意本仓库为早期版本完整的分布式计算包transient-universe与 Web 端axiom已迁移至 transient 新仓库体系最新功能请以后续版本为准。项目模块结构速览模块路径作用src/Transient/Base.hs基础接口与核心类型src/Transient/Internals.hs可扩展 Effects 单子内部实现src/Transient/EVars.hs发布/订阅变量含 IO 引用变体EVars.ioref.hssrc/Transient/Indeterminism.hs非确定性choose、group、burst等src/Transient/Backtrack.hs事务回溯、撤销 IO 操作src/Transient/Logged.hs日志效应src/Transient/Parse.hs解析器tests/Test3.hs双节点分布式示例clustered / runAttests/Testspark.hs分布式流式 / map-reduce 风格示例适合谁用总结✅ 想要无回调、无阻塞编写并发与分布式程序的 Haskell 用户✅ 希望事务可回溯、逻辑集中、跨节点组合可复用的架构师✅ 对“全栈响应式”多线程 → 分布式 → Web统一编程模型感兴趣的新手一句话总结Transient 让你用普通的函数组合语法把 Haskell 进程搬到另一台机器上运行。从src/Transient/下的模块到tests/里的跨机器用例整个仓库就是一个可上手、可实验的分布式编程学习场。【免费下载链接】transientA full stack, reactive architecture for general purpose programming. Algebraic and monadically composable primitives for concurrency, parallelism, event handling, transactions, multithreading, Web, and distributed computing with complete de-inversion of control (No callbacks, no blocking, pure state)项目地址: https://gitcode.com/gh_mirrors/tr/transient创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/24 9:20:19

基于kov-blog的Vue+Vuex状态管理实战教程:post与token模块设计解析

基于kov-blog的VueVuex状态管理实战教程:post与token模块设计解析 【免费下载链接】kov-blog A blog platform built with koa,vue and mongoose. 使用 koa ,vue 和 mongo 搭建的博客页面和支持markdown语法的博客编写平台,自动保存草稿。博客地址:https://chuckliu…

2026/8/24 9:20:19

数学建模竞赛冲刺周:从知识整合到实战演练的备赛指南

1. 项目概述:一次竞赛,一场蜕变又到了一年一度的大学生数学建模竞赛季。对于很多理工科,甚至经管、社科专业的同学来说,这不仅仅是一次比赛,更像是一场为期三天三夜的“学术马拉松”。从拿到赛题那一刻的茫然&#xff…

2026/8/24 14:01:23

深夜写手自救!亲测这6款AI论文软件,从大纲到终稿全程开挂

从开题到降重,AI工具链10分钟搞定文献综述,知网查重率直降!解放双手专注核心论点,这才是学术价值的真正突破。 1.千笔 AI:开题报告 & 文献综述「闪电战专家」实测场景:经济学开题报告从空白到导师通过 …

2026/8/24 14:01:23

【关注可白嫖源码】--课程设计+毕业设计+基于SpringBoot+Vue+的社区共享车位管理与租赁系统[编号:project45784](案例分析)

本文仅展示核心实现逻辑与部分代码片段,完整项目源码、配套文档、数据库脚本内容较多,篇幅有限无法全部放出。 有需要完整资源的同学,可以在评论区留言【资料或领源码】,我会一一回复站内私信,发送完整文件 摘 要 城…

2026/8/24 13:56:23

沉浸式空间

沉浸式空间正从“可选展项”升级为“必选项”,成为提升品牌体验和观众停留时间的核心手段。它通过投影、LED或XR等技术,构建出包裹式的虚拟环境,让参观者从“旁观”变为“参与”。北京流光溢彩数字文化传媒有限公司深耕数字展示领域近二十年&…

2026/8/24 0:07:22

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 1:09:25

3条命令跑通LocalAI:无GPU本地AI引擎部署

3条命令跑通LocalAI:无GPU本地AI引擎部署 【免费下载链接】LocalAI LocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required. 项目地址: https://gitcode.com/GitHub_Trending/lo/LocalAI…

2026/8/24 1:09:25

AI推理性能测试怎么做:MLPerf Inference完整上手指南

AI推理性能测试怎么做:MLPerf Inference完整上手指南 【免费下载链接】inference Reference implementations of MLPerf inference benchmarks 项目地址: https://gitcode.com/gh_mirrors/inf/inference 同一个模型换一张卡,速度快多少你知道吗&a…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/23 6:14:43

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/23 4:22:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…