Kraken:paypal开源的Web开发框架

简介: PayPal最近发布了一款Node.js Web开发框架——Kraken。Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。

PayPal最近发布了一款Node.js Web开发框架——Kraken

Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。


为什么会有Kraken

之前,PayPal 长期存在着“非我所创”的文化,采用新技术的态度很消极,项目开发进度也非常缓慢。由于 PayPal 开发缓慢,其他支付系统(比如Stripe 和 Square) 趁机成长,开始撼动 PayPal 的市场地位。PayPal 当时的开发技术也已经无法满足快速开发的需求,因为当时的开发基本全是Java,不管功能是否需要用 Java 实现,都会用 Java。


2012 年 4 月,David Marcuss 成为 PayPal 的总裁,要求工程师团队在 6 周内完成支付系统的重写,这是一个为 PayPal 带来了 35 亿美元收入的系统。最终,工程师团队用了 8 周时间完成了该项任务,他们选择了 Node.js 对系统进行重新开发。当然,PayPal 的其他大量的子系统还需要整合到 Node.js 系统,所以起初 Node.js 仅作为一个快速开发的原型。


后来,PayPal 越来越多的新开发项目都逐渐采用 Node.js 和其他开源软件。最终,一个可以快速开发 Web 应用的 Kraken 框架诞生了。


下面我们简单介绍下 Kraken 的框架结构和特点,希望能对大家有所帮助。


Kraken 框架套件

Kraken 框架套件包括多个部分,Kraken.js 仅是该框架的主体部分。该框架还包括其他模块(可独立使用):

  • lusca:支持 Express的安全模块
  • makara:支持 Dust.js的国际化i18n模块
  • Adaro:支持 Express 的Dust.js 视图渲染器
  • Kappa:NPM 代理插件


除了上述可以独立使用的模块之外,Kraken 套件还包括了一系列的依赖和工具:


特性

项目结构清晰

配置、内容、模板、路由逻辑放在不同位置,方便对文件进行组织和管理。

  • config 配置
  • controllers 控制器
  • lib 库文件和其他代码
  • locales 本地化文件
  • models 模型
  • public 公共资源
  • public/templates 模板
  • test 测试
  • index.js 应用程序入口文件


开发环境与生产环境的平衡

Kraken 的配置文件为config/app.json,全部的应用配置均存放在此文件中,大大方便了开发者。config/middleware.json则是中间件配置文件。


开发环境与生产环境,通常在端口号、主机名等方面的参数设置会有不同,Kraken 允许创建单独的适用于开发模式的配置文件,比如config/app.json 为生产环境下的配置, config/app-development.json 为开发环境下的配置,然后可以通过自定义环境变量来控制需要加载的配置文件。开发者可以在生产环境和开发环境进行快速切换!


安全

利用Lusca提供的安全保障。遵循OWASP安全原则,默认启用如下请求和响应的头文件:


其他

  • 路由与逻辑分离:快速锁定问题。
  • 模板共用: 服务器端和客户端都使用Dust 作为模板语言,方便代码复用。
  • 本地化: Kraken 可以在运行时基于请求上下文来加载内容,所以在模板渲染之前就
  • 可以通过添加上下文来给用户提供相应的本地语言支持。


代码示例

Kraken官方给出的两个代码示例:


项目主页

Kraken是一个开源项目。请访问其Github页面了解更多内容。

编辑:Segmentfault

相关文章
|
4月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
471 1
|
8月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
8月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
8月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
10月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
1401 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
11月前
|
JavaScript 前端开发 数据可视化
20.6K star!Excel级交互体验!这款开源Web表格神器绝了!
Handsontable 是一款功能强大的 JavaScript 数据表格组件,提供类 Excel 的交互体验。支持实时协作、数据绑定、公式计算等企业级功能,可轻松集成到 React/Vue/Angular 等主流框架。
2175 11
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
356 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
11月前
|
运维 网络安全 文件存储
找不到类似 Docker Desktop 的 Web 管理界面?试试这些开源方案
Docker Desktop 是本地容器化开发的利器,但存在无法通过 Web 远程管理、跨平台体验不一致等问题。为此,推荐几款轻量级、可 Web 化管理的 Docker 工具:Portainer 功能全面,适合企业级运维;CasaOS 集成应用商店和 NAS 功能,适合家庭/个人开发环境;Websoft9 提供预集成环境,新手友好。这些工具能有效提升容器管理效率,满足不同场景需求。
831 3
|
4月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
421 4