Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/epicsdao/zapp

🚧Deprecated - Moved to Skeet https://skeet.dev 🚧⚑Rust Serverless Framework
https://github.com/epicsdao/zapp

async cloud cloudrun framework gcp graphql graphql-api postgresql rust serverless serverless-framework

Last synced: 12 days ago
JSON representation

🚧Deprecated - Moved to Skeet https://skeet.dev 🚧⚑Rust Serverless Framework

Awesome Lists containing this project

README

        

![ZAPP](https://storage.googleapis.com/zapp-bucket/img/ZAPP-logo.jpeg)



Follow @EpicsDAO2















# Zapp

Rust Serverless Framework

The Zapp project was launched with the goal of reducing software development, operation and maintenance costs.

Build Serverless Apps faster.
Powered by Rust, Aysnc-GraphQL, SeaORM, Axum, and Google Cloud.

- Focus on business logic in serverless environment
- Maximize development efficiency with CI / CD standard schema-driven Scaffold
- Achieve global scale with lower management costs





## Dependency

- [Google SDK](https://cloud.google.com/sdk/docs)
- [Docker](https://www.docker.com/)
- [Github CLI](https://cli.github.com/)
- [SeaORM](https://www.sea-ql.org/SeaORM/)
- [Axum](https://github.com/tokio-rs/axum)
- [Async GraphQL](https://github.com/async-graphql/async-graphql)

## Cloud Infrastructure

- [Google Cloud Run](https://cloud.google.com/run)
- [Google Cloud SQL](https://cloud.google.com/sql)
- [Google Cloud IAM](https://cloud.google.com/iam)
- [Google Cloud Container Registry](https://cloud.google.com/container-registry)
- [Google Cloud VPC](https://cloud.google.com/vpc)
- [Google Cloud Nat](https://cloud.google.com/nat)
- [Github Actions](https://github.com/features/actions)

## Document

- [Document](https://zapp.epics.dev/)

## Installation

```bash
$ cargo install zapp
```

```bash
$ zapp --help
zapp 0.5.6
EpicsDAO
Rust Serverless Framework

USAGE:
zapp

OPTIONS:
-h, --help Print help information
-V, --version Print version information

SUBCOMMANDS:
compute
db
docker
g
gcloud
gh
help Print this message or the help of the given subcommand(s)
iam
init
new
run
sql
```

## QuickStart

Create your application with zapp CLI.
```bash
$ zapp new YOURAPP

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β•šβ•β•β–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
β–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•”β•β•β•β•
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β•β•β•šβ•β• β•šβ•β•β•šβ•β• β•šβ•β•
πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ πŸ’ƒ
Rust Serverless Framework
$ cd YOURAPP
$ zapp docker psql
$ cargo run

Go to : http://localhost:3000/api/graphql
```

Create Docker PostgreSQL
```bash
$ zapp docker psql
βœ… PostgreSQL Container Created: 4619cfc047f3cad6c9db8d255aff841fbfe34bbef0e2661fa3a02db5d5ec5d91
```

Run GraphQL Local Server
```bash
$ cargo run
```

Now go to

[http://localhost:3000/api/graphql](http://localhost:3000/api/graphql)

## GraphQL Mutation/Query Scaffold

Create Model
```bash
$ zapp g model user
βœ… Successfully created migration file: migration/src/m20220613_102512_create_user_table.rs
βœ… Successfully added route to `migration/src/lib.rs`
βœ… Successfully created entity file: entity/src/user.rs
βœ… Successfully created mutation file: src/graphql/mutation/user.rs
βœ… Successfully created query file: src/graphql/query/user.rs
βœ… Successfully added route to `entity/src/lib.rs`
βœ… Successfully added mutation route: src/graphql/mutation/mod.rs
βœ… Successfully added mutation route: src/graphql/query/mod.rs
```





- [Document](https://zapp.epics.dev/)

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/EpicsDao/zapp. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.

## License

The gem is available as open source under the terms of the [Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0).

## Code of Conduct

Everyone interacting in the EpicsDAO project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/EpicsDao/zapp/blob/master/CODE_OF_CONDUCT.md).