Malagu Serverless First 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Malagu Serverless First 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Malagu Serverless First 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Malagu Serverless First 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Malagu Serverless First 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 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)

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

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

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

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

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

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

8
9
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于云计算专区
2020/10/18 16:33

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

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

3
0
发表于开发技能专区
2018/12/05 17:52

What is Serverless?

  Serverless架构是尝试新创意、探索可能的新市场或者创建最小可行产品的极佳应用方式。搭建这类应用来替代传统Web应用或者原生应用,意味着你可以更快接触到客户。你可以在若干小时内搭建一个初始版本并在几秒内部署。这些应用可以立即更新,轻松测试,可以提供详细的使用指标,帮助你理解客户需求。   Serverless的意思就是,你开发应用时专注于实现应用的业务逻辑,不需要考虑管理服务器的事情。采用Serverless架构,你的...

0
0
2020/04/16 17:59

Serverless

Serverless 是一个更大的范畴,Serverless 不只计算,也包括存储、数据库、中间件等各种服务。Serverless = FaaS(函数即服务) + BaaS(后端即服务)。其中 Serverless 计算一般指 FaaS,即云函数。 云函数和微服务不是取代关系。微服务是一种架构模式,而云函数是实现微服务的一种方式。微服务可以用云函数实现,也可以用 K8S + 容器,或者 VM 实现。 Serverless架构的不足,最大的一个问题我觉得就是状态保持,因为函数要进行...

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

Serverless

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

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

万物皆可 Serverless 之我的 Serverless 之路

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

0
0
2020/04/01 10:44

入门 Serverless:Serverless Framework 开发者工具

> Serverless 架构是云发展的产物,是一种去服务器化更加明显的架构。然而,细心的朋友可能会发现,有一个开发者工具也叫 Serverless,那么 Serverless 到底是一个架构,还是一个开发者工具呢?这个开发者工具和 Serverless 架构又有什么关系呢? ## 初探 Serverless 开发者工具 Serverless 架构开始发展没多久,就有一群人注册了 serverless.com 的域名,成立了一家叫 Serverless 的公司,同时还开发了一款同名工具。 Serverle...

0
4
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
7 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部