alibaba / Malagu
Licence: mit
Malagu Development Framework (QQ: 1013685855 钉钉群:31992376)
Stars: ✭ 196
Programming Languages
typescript
32286 projects
Projects that are alternatives of or similar to Malagu
Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (+85.2%)
Mutual labels: serverless, faas, ioc
Midway
🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate with React and Vue. 🌈
Stars: ✭ 5,080 (+2491.84%)
Mutual labels: serverless, framework, ioc
Malagu
Malagu is a Serverless First, component-based, platform-independent, progressive application framework based on TypeScript.
Stars: ✭ 184 (-6.12%)
Mutual labels: serverless, faas, orm
Component
🔥🔥🔥A powerful componentized framework.一个强大、100% 兼容、支持 AndroidX、支持 Kotlin并且灵活的组件化框架
Stars: ✭ 2,434 (+1141.84%)
Mutual labels: framework, component
Openwhisk Devtools
Development tools for building and deploying Apache OpenWhisk
Stars: ✭ 141 (-28.06%)
Mutual labels: serverless, faas
Aws Serverless Data Lake Framework
Enterprise-grade, production-hardened, serverless data lake on AWS
Stars: ✭ 179 (-8.67%)
Mutual labels: serverless, framework
Laravel Bridge
Package to use Laravel on AWS Lambda with Bref
Stars: ✭ 168 (-14.29%)
Mutual labels: serverless, faas
Middy
🛵 The stylish Node.js middleware engine for AWS Lambda
Stars: ✭ 2,592 (+1222.45%)
Mutual labels: serverless, framework
Elefant
Elefant, the refreshingly simple PHP CMS and web framework.
Stars: ✭ 188 (-4.08%)
Mutual labels: orm, framework
Denyenv Validating Admission Webhook
An Kubernetes validating admission webhook that rejects pods that use environment variables.
Stars: ✭ 144 (-26.53%)
Mutual labels: serverless, faas
Refunc
A lib make building AWS Lambda compatible layer easily
Stars: ✭ 144 (-26.53%)
Mutual labels: serverless, faas
Qframework
Unity3D System Design Architecture
Stars: ✭ 2,326 (+1086.73%)
Mutual labels: framework, ioc
Faas Netes
Serverless on Kubernetes with OpenFaaS
Stars: ✭ 1,875 (+856.63%)
Mutual labels: serverless, faas
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (-4.08%)
Mutual labels: serverless, framework
Flogo
Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps.
Stars: ✭ 1,891 (+864.8%)
Mutual labels: serverless, faas
https://github.com/cellbang/malagu)
Malagu (Malagu is a serverless First, scalable and componentized application framework developed by TypeScript.
Read this in other languages: 简体中文
Features
- Based on TypeScript
- Zero configuration
- Spring Boot-like development experience
- Serverless First
- componentization
- Front-end and back-end integration
- Aspect-oriented programming (AOP)
- Integrated ORM framework
- The command tool is extensible
The origin of the name Malagu: In my hometown, the homonym "Malagu" means small stones. Stacked small stones can be used to build high-rise buildings, roads and bridges, and Malagu component arrangement can realize a variety of applications.
Document
To check out the document.
Quick Start
- Create an application
- Run locally
- Debug locally
- Deploy the application
Dependency injection
@Component()
export class A {
}
@Component()
export class B {
@Autowired()
protected a: A;
}
Property injection
@Component()
export class A {
@Value('foo') // Support EL expression syntax, such as @Value ('obj.xxx'), @Value ('arr [1]'), etc.
protected foo: string;
}
MVC
@Controller('users')
export class UserController {
@Get()
list(): Promise<User[]> {
...
}
@Get(':id')
get(@Param('id') id: number): Promise<User | undefined> {
...
}
@Delete(':id')
async remove(@Param('id') id: number): Promise<void> {
...
}
@Put()
async modify(@Body() user: User): Promise<void> {
...
}
@Post()
create(@Body() user: User): Promise<User> {
...
}
}
Database operations
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);
}
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].