使用React和Node.js开发全栈Web应用的最快方法。
Wasp(Web Application Specification)是一个类似于Rails的框架,用于React、Node.js和Prisma。 一天内构建您的应用,并通过单个CLI命令部署!
为什么Wasp很棒
- 🚀 快速启动:由于其表达能力强,您可以用简洁、一致、声明式的代码创建并部署一个生产就绪的Web应用。
- 😌 无样板代码:通过抽象复杂的全栈特性,减少了样板代码。这意味着更少的代码需要维护和理解!也意味着更容易升级。
- 🔓 无锁定:您可以在任何喜欢的地方部署Wasp应用。没有特定供应商的锁定;您可以完全控制代码(如果您感兴趣,实际上可以在.wasp/目录中查看)。
特性
🔒 全栈认证, 🖇️ RPC (客户端 <-> 服务器), 🚀 简单部署, ⚙ ️任务, ✉️ 邮件发送, 🛟 全栈类型安全, ...
代码示例
简单的Wasp配置文件,其中描述了Web应用的高级细节:
// 文件: main.wasp
app todoApp {
title: "ToDo 应用", // 在浏览器标签中可见
wasp: { version: "^0.14.0" },
auth: { // 开箱即用的全栈认证
userEntity: User, methods: { email: {...} }
}
}
route RootRoute { path: "/", to: MainPage }
page MainPage {
authRequired: true, // 限制只有登录用户可访问。
component: import Main from "@client/Main.tsx" // 您的React代码。
}
query getTasks {
fn: import { getTasks } from "@server/tasks.js", // 您的Node.js代码。
entities: [Task] // 自动缓存失效。
}
// 文件: schema.prisma
model Task { // 您的Prisma数据模型。
id Int @id @default(autoincrement())
description String
isDone Boolean @default(false)
}
您在React / Node.js / Prisma中编写其余的代码,并从.wasp文件中引用它。
:arrow_forward: 查看TodoApp示例获取完整代码示例。:arrow_backward:
工作原理
给定一个简单的.wasp配置文件(描述Web应用的高级细节)和包含您独特逻辑的.js(x)/.css/...源文件,Wasp编译器会在目标栈中生成Web应用的完整源代码:前端、后端和部署。
这种独特的方法使Wasp变得"智能"并赋予它超能力!
有关Wasp的更多信息,请查看文档。
开始使用
在OSX/Linux/WSL(Win)上运行以下命令安装Wasp:
curl -sSL https://get.wasp-lang.dev/installer.sh | sh
从那里开始,只需按照说明在不到一分钟的时间内运行您的第一个应用程序!
更多详情,请查看文档。
Wasp AI / Mage
Wasp附带实验性AI代码生成器,可帮助您启动下一个Wasp项目 -> 如果您能提供OpenAI密钥,可以通过CLI中的wasp new
使用它(选择"AI"选项),或者您可以通过我们的Mage网页应用使用,在这种情况下,我们的OpenAI密钥将在后台使用。
本仓库
这是Wasp宇宙的主要仓库,包含核心代码(主要是waspc
- Wasp编译器)和支持材料。
项目状态
目前,Wasp处于测试阶段,大部分功能已经完善并运行良好。 然而,我们对未来还有许多改进和新增功能的想法,我们正在不断努力,所以您可以期待未来会有很多变化和改进。
虽然未来的想法是支持多种Web技术栈,但现在我们专注于特定的技术栈:React + react-query、NodeJS + ExpressJS和Prisma。
贡献
任何您想贡献的方式都是好方式:)!
最好的开始方式是查看waspc/,那里有针对首次贡献者的详细步骤以及关于Wasp编译器的技术细节。
Wasp的核心是用Haskell构建的,但Wasp还有很多非Haskell部分,所以您一定能找到适合您的内容!
即使您不打算提交任何代码,仅仅加入Discord上的讨论并给出您的反馈已经很棒了,这对我们帮助很大(激励我们并帮助我们确定如何塑造Wasp)!
您还可以:
- :star: 为这个仓库加星以表示您的兴趣/支持。
- :mailbox: 订阅我们的邮件列表以保持更新。
- :speech_balloon: 在https://github.com/wasp-lang/wasp/discussions 参与讨论。
职业机会
查看我们的职业页面,了解当前开放的职位列表!
赞助商
- 我们有史以来的第一位赞助商!Michel,非常感谢您❤️,来自整个Wasp团队,感谢您勇敢地走向前人未至之地:)!
- 感谢Shayne,感谢您迄今为止所做的所有贡献以及您持续的支持!
- 我们感谢Ricardo在Wasp早期阶段对我们的支持:)!
- 感谢Thomas对Wasp的支持:)! - 我们的优秀赞助商一次又一次地支持我们!