Repolode
digitallyinduced

digitallyinduced/ihp

基于 Haskell 的全功能类型安全 Web 框架,内置路由、视图、PostgreSQL 模型和开发 IDE。

Star
5,379
Fork
226
未关闭 Issue
287
最近提交
21小时前

这是什么?

IHP 是一个用 Haskell 编写的全栈 Web 框架,内置路由、控制器、类型安全的 HTML 模板(HSX)、基于 PostgreSQL 的数据模型、表单验证和用户认证,新项目开箱即可具备常见 Web 应用的基础能力。

框架自带开发 IDE,可通过图形界面或直接编写 SQL 设计数据库表结构,并能生成控制器、视图和迁移文件,开发服务器支持热重载。Auto Refresh 功能可在底层数据变化时自动更新视图,datasync 包则通过 WebSocket 提供实时数据同步。

环境依赖由 Nix 管理,包括 GHC 和 PostgreSQL,团队成员可通过 `devenv up` 获得一致的开发环境。部署方面,项目提供基于 NixOS 的工具,通过 SSH 应用声明式服务器配置,同时也支持 Docker 和裸机部署。

核心功能

  • 01路由、查询和 HSX 模板在编译期进行类型检查。
  • 02可视化 Schema 设计器,以及控制器、视图、迁移文件的代码生成器。
  • 03开发服务器支持热重载,Auto Refresh 可实现实时视图更新。
  • 04内置注册、登录、表单处理和验证。
  • 05由 Nix 统一管理 GHC、PostgreSQL 等开发依赖。
  • 06基于 NixOS 的声明式部署,并通过 Let's Encrypt 配置 TLS。

适用场景

  • 用 Haskell 构建基于数据库的 Web 应用,减少样板代码。
  • 希望在多台机器间共享可复现开发环境的团队。
  • 需要将界面与 PostgreSQL 数据实时同步的项目。
  • 借助编译器校验 AI 生成代码的 Web 功能原型开发。

快速上手

  1. 1

    通过 Nix 安装项目生成器

    nix profile install nixpkgs#ihp-new
  2. 2

    创建新项目

    ihp-new myproject
  3. 3

    进入项目目录并启动开发环境

    cd myproject && devenv up

使用前须知

  • 需要 Nix 和 Haskell 环境,对不熟悉 Haskell 的开发者学习曲线较陡。

收录于专题

标签

常见问题

ihp 是什么?
基于 Haskell 的全功能类型安全 Web 框架,内置路由、视图、PostgreSQL 模型和开发 IDE。 IHP 是一个用 Haskell 编写的全栈 Web 框架,内置路由、控制器、类型安全的 HTML 模板(HSX)、基于 PostgreSQL 的数据模型、表单验证和用户认证,新项目开箱即可具备常见 Web 应用的基础能力。
ihp 可以免费使用吗?用的什么许可证?
ihp 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ihp 还在维护吗?
活跃维护中。ihp 最近一次提交是在 2026年11月6日。
ihp 适合用来做什么?
用 Haskell 构建基于数据库的 Web 应用,减少样板代码。 希望在多台机器间共享可复现开发环境的团队。 需要将界面与 PostgreSQL 数据实时同步的项目。 借助编译器校验 AI 生成代码的 Web 功能原型开发。
ihp 怎么安装和运行?
通过 Nix 安装项目生成器: nix profile install nixpkgs#ihp-new 创建新项目: ihp-new myproject 进入项目目录并启动开发环境: cd myproject && devenv up
在哪里获取 ihp?
源代码和安装说明在 GitHub 上:https://github.com/digitallyinduced/ihp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目