All Projects → cellbang → Malagu

cellbang / Malagu

Licence: mit
Malagu is a Serverless First, component-based, platform-independent, progressive application framework based on TypeScript.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Malagu

Midway Faas
🔱 A simple and lightweight serverless framework
Stars: ✭ 363 (+97.28%)
Mutual labels:  microservice, serverless, serverless-framework, faas
Components
The Serverless Framework's new infrastructure provisioning technology — Build, compose, & deploy serverless apps in seconds...
Stars: ✭ 2,259 (+1127.72%)
Mutual labels:  serverless, serverless-framework, faas
EvaEngine.js
A micro service development engine for node.js
Stars: ✭ 31 (-83.15%)
Mutual labels:  orm, microservice, dependency-injection
Jazz
Platform to develop and manage serverless applications at an enterprise scale!
Stars: ✭ 254 (+38.04%)
Mutual labels:  serverless, serverless-framework, faas
Serverless
⚡ Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! –
Stars: ✭ 41,584 (+22500%)
Mutual labels:  microservice, serverless, serverless-framework
Microless
Using docker and nodejs to build Microservice
Stars: ✭ 14 (-92.39%)
Mutual labels:  microservice, serverless, faas
Malagu
Malagu Development Framework (QQ: 1013685855 钉钉群:31992376)
Stars: ✭ 196 (+6.52%)
Mutual labels:  serverless, faas, orm
Webiny Js
Enterprise open-source serverless CMS. Includes a headless CMS, page builder, form builder and file manager. Easy to customize and expand. Deploys to AWS.
Stars: ✭ 4,869 (+2546.2%)
Mutual labels:  microservice, serverless, serverless-framework
Microservice
Xigadee is an open-source Microservice framework, developed by Paul Stancer and Guy Steel. The libraries provide a simple and consistent approach for building modern enterprise API and Microservice based solutions; specifically those solutions targeted on the Azure platform.
Stars: ✭ 47 (-74.46%)
Mutual labels:  microservice, serverless, serverless-framework
Fx
A Function as a Service tool makes a function as a container-based service in seconds.
Stars: ✭ 1,679 (+812.5%)
Mutual labels:  microservice, serverless, faas
Activej
ActiveJ is an alternative Java platform built from the ground up. ActiveJ redefines web, high load, and cloud programming in Java, featuring ultimate performance and scalability!
Stars: ✭ 183 (-0.54%)
Mutual labels:  microservice, dependency-injection
Serverless Sentry Plugin
This plugin adds automatic forwarding of errors and exceptions to Sentry (https://sentry.io) and Serverless (https://serverless.com)
Stars: ✭ 146 (-20.65%)
Mutual labels:  serverless, serverless-framework
Serverless Book
A book about the http://serverless.com Framework v1
Stars: ✭ 144 (-21.74%)
Mutual labels:  serverless, serverless-framework
Serverless Php
PHP for AWS Lambda via Serverless Framework
Stars: ✭ 152 (-17.39%)
Mutual labels:  serverless, serverless-framework
Serverless Next.js
⚡ Deploy your Next.js apps on AWS Lambda@Edge via Serverless Components
Stars: ✭ 2,977 (+1517.93%)
Mutual labels:  serverless, serverless-framework
Denyenv Validating Admission Webhook
An Kubernetes validating admission webhook that rejects pods that use environment variables.
Stars: ✭ 144 (-21.74%)
Mutual labels:  serverless, faas
Dapr
Dapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.
Stars: ✭ 16,274 (+8744.57%)
Mutual labels:  microservice, serverless
Cartoonify
Deploy and scale serverless machine learning app - in 4 steps.
Stars: ✭ 157 (-14.67%)
Mutual labels:  serverless, serverless-framework
Refunc
A lib make building AWS Lambda compatible layer easily
Stars: ✭ 144 (-21.74%)
Mutual labels:  serverless, faas
Zappa
Serverless Python
Stars: ✭ 11,859 (+6345.11%)
Mutual labels:  serverless, serverless-framework

English | 简体中文

Malagu

GitHub license npm version npm downloads TravisCI

Malagu is a Serverless First, Component-based, platform-independent, progressive application framework based on TypeScript.

Features

  • Convention over configuration, zero configuration, out of the box
  • Spring Boot for TypeScript
  • Serverless First
  • The platform is not locked.
  • Support for front-end integration, front-end framework is not locked
  • Support microservices
  • Componentized, Progressive
  • Plug-in command line tools
  • Dependency injection
  • Facet-oriented programming (AOP)
  • Integrates with the popular ORM framework for declarative transaction management using decorators.
  • Support for OIDC accreditation
  • OAuth2 authorization support
  • Managing Status with rxjs
  • Both REST and RPC interface styles available

The Malagu name comes from the fact that where I come from, the word "malagu" means small stone, and while small stones can be built into tall buildings, roads, and bridges, the Malagu Component layout can be used in a myriad of ways.

Quick start

# Install command-line tools
npm install -g yarn
npm install -g @malagu/cli

# Initialization
malagu init project-name
cd project-name # Enter the project root directory

# Running
malagu serve

# Deployment
malagu deploy

Example

View Online Sample Template

Documentation

Dependency injection

// Class object injection
@Component()
export class A {

}

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

// Configuration property injection
@Component()
export class C {
    @Value('foo') // Support EL expression syntax, such as @Value('obj.xxx'), @Value('arr[1]') etc.
    protected foo: string;
}

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);
    }
}

Discuss group

群二维码.png

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].