Malagu Serverless First 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Malagu Serverless First 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
开发语言 TypeScript
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发Web框架
开发厂商
地区 国产
提 交 者 木香丘
适用人群 未知
收录时间 2020-10-19

软件简介

Malagu 是基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。

特征

  • 约定大于配置,零配置,开箱即用
  • TypeScript 版 Spring Boot
  • Serverless First
  • 平台不锁定
  • 支持前后端一体化,前端框架不锁定
  • 组件化,渐进式
  • 命令行工具插件化
  • 依赖注入
  • 面向切面编程(AOP)
  • 集成了流行的 ORM 框架,使用装饰器声明式事务管理
  • 支持 OIDC 认证
  • 支持 OAuth2 授权
  • 使用 rxjs 管理状态
  • 提供 REST 和 RPC 两种接口风格

Malagu 名字由来:在我的家乡,谐音“吗啦咕”是小石头的意思,小石头堆砌起来可以建成高楼大厦、道路桥梁,而 Malagu 组件编排可以实现千变万化的应用。

快速开始

# 安装命令行工具
npm install -g yarn
npm install -g @malagu/cli

# 初始化
malagu init project-name
cd project-name            # 进入项目根目录

# 运行
malagu serve

# 部署
malagu deploy

文档

依赖注入

// 类对象注入
@Component()
export class A {

}

@Component()
export class B {
    @Autowired()
    protected a: A;
}

// 配置属性注入
@Component()
export class C {
    @Value('foo') // 支持 EL 表达式语法,如 @Value('obj.xxx')、@Value('arr[1]') 等等
    protected foo: string;
}

数据库操作

import { Controller, Get, Param, Delete, Put, Post, Body } from '@malagu/mvc/lib/node';
import { Transactional, OrmContext } from '@malagu/typeorm/lib/node';
import { User } from './entity';
@Controller('users')
export class UserController {
    
    @Get()
    @Transactional({ readOnly: true })
    list(): Promise<User[]> {
        const repo = OrmContext.getRepository(User);
        return repo.find();
    }
    @Get(':id')
    @Transactional({ readOnly: true })
    get(@Param('id') id: number): Promise<User | undefined> {
        const repo = OrmContext.getRepository(User);
        return repo.findOne(id);
    }
    @Delete(':id')
    @Transactional()
    async remove(@Param('id') id: number): Promise<void> {
        const repo = OrmContext.getRepository(User);
        await repo.delete(id);
    }
    @Put()
    @Transactional()
    async modify(@Body() user: User): Promise<void> {
        const repo = OrmContext.getRepository(User);
        await repo.update(user.id, user);
    }
    @Post()
    @Transactional()
    create(@Body() user: User): Promise<User> {
        const repo = OrmContext.getRepository(User);
        return repo.save(user);
    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
发表于云计算专区
11/08 17:55

Malagu v1.4.1 发布 - 支持 Serverless 优先的微服务框架

Malagu 框架简介 Malagu 基于 TypeScript 的 Serverless First、组件化、平台无关的渐进式应用框架。 背景 当我们着手开发一个新项目的时候,单体和微服务架构该如何抉择?对于创业团队来说,更倾向于先采用单体架构来试错,商业模式验证成功后,再根据业务规模的增涨逐渐演进到微服务架构,从而解决单体架构带来的臃肿、...

0
2
发表于软件架构专区
10/23 16:18

Serverless Frist 的渐进式应用开发框架 Malagu

什么是 Malagu Malagu 是基于 TypeScript 的 Serverless First、组件化的渐进式应用开发框架。使用同一套编程语言和 IoC 设计,用于开发前端、后端和前后端一体化应用。并且结合了 OOP(面向对象编程)、AOP(面向切面编程)等元素,借鉴了很多 Spring Boot 设计思想。 在后端,Malagu 抽象一套接口,方便适配任意的平...

8
9
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
05/18 11:14

Serverless 原生框架:Malagu Framework

背景 早期,Serverless Framework 的定位是偏运维侧,通过 Yaml 文件定义规则,Serverless Framework 负责部署到对应的云厂商。Serverless Framework 提供了一种方案去适配不同的云厂商。 最近 Serverless 提供了一个 Serverless Component 方案,这个方案更面向开发侧。在同一时间,Malagu Framework 也想到了 Componen...

0
0
发表于云计算专区
10/18 16:33

Serverless Frist 的渐进式应用开发框架 Malagu

什么是 Malagu Malagu 是基于 TypeScript 的 Serverless First、组件化的渐进式应用开发框架。使用同一套编程语言和 IoC 设计,用于开发前端、后端和前后端一体化应用。并且结合了 OOP(面向对象编程)、AOP(面向...

3
0
发表了博客
2019/06/28 17:19

Serverless

一、介绍 是指依赖于第三方应用程序或服务来管理服务器端逻辑的应用程序。 此类应用程序是基于云的数据库(如Google Firebase)或身份验证服务。 无服务器也意味着开发为事件触发的代码,并且在无状态计算容器中执行。 这种架构通常称为功能即服务(FaaS)。 FaaS(Function as a service 函数作为一种服务) 本质上是一个...

0
0
04/16 17:59

Serverless

Serverless 是一个更大的范畴,Serverless 不只计算,也包括存储、数据库、中间件等各种服务。Serverless = FaaS(函数即服务) + BaaS(后端即服务)。其中 Serverless 计算一般指 FaaS,即云函数。 云函数和微服...

0
0
发表于软件架构专区
2018/12/05 17:52

What is Serverless?

  Serverless架构是尝试新创意、探索可能的新市场或者创建最小可行产品的极佳应用方式。搭建这类应用来替代传统Web应用或者原生应用,意味着你可以更快接触到客户。你可以在若干小时内搭建一个初始版本并在几秒...

0
0
发表了博客
09/08 07:17

Serverless

目录 文章目录 目录 请求驱动 分布式运行时 请求驱动 请求驱动,也就是支持基于请求的动态弹性伸缩并且简化请求处理逻辑。有些同学可能把这个模型称之为 Event-driven,也就是事件驱动,但是请求驱动实际是事件驱动中的一个分支。 什么是请求驱动呢?从传统的微服务架构看,当一个外部系统请求进来后,一般都会经过一个 ...

0
0
04/01 10:44

入门 Serverless:Serverless Framework 开发者工具

Serverless 架构是云发展的产物,是一种去服务器化更加明显的架构。然而,细心的朋友可能会发现,有一个开发者工具也叫 Serverless,那么 Serverless 到底是一个架构,还是一个开发者工具呢?这个开发者工具和 Se...

0
3
发表了博客
06/18 14:03

万物皆可 Serverless 之我的 Serverless 之路

缘起 本文来自 Serverless 社区用户「乂乂又又」投稿 我最早接触 Serverless 大概是在 18 年 6 月,那时候我在阿里云的学生机刚好到期,那台机子上我有装宝塔面板,然后在上面只放了一个 Typecho 的个人博客站,好像这台服务器似乎一直都是被我拿来当作虚拟主机用,最多也只是登上宝塔面板清一下内存这样子,所以,在我阿...

0
0
发表了博客
2019/11/26 15:49

什么是Serverless?

Serverless 架构 1.什么是Serverless? Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署,你甚至可以管理某个具体功能或端...

0
0
2019/10/12 16:07

从 DevOps 到 Serverless

没有比“不用做”更有效的方式来解决“如何更高效做”的问题了。 阿里云 Serverless 应用引擎6折特惠,节省闲置资源,IaaS免运维。 https://cn.aliyun.com/product/sae DevOps 概述 DevOps 是一组用于促进开发和运...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
6 收藏
分享
返回顶部
顶部