All Projects → rusty-crab → Warp Api Starter Template

rusty-crab / Warp Api Starter Template

Licence: mit
A boilerplate template for starting a web services using Warp + SQLx (PostgreSQL) + Redis + Juniper (GraphQL). ❤️

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Warp Api Starter Template

Generate
A new command line tool and developer framework for scaffolding out GitHub projects. Generate offers the robustness and configurability of Yeoman, the expressiveness and simplicity of Slush, and more powerful flow control and composability than either.
Stars: ✭ 238 (+64.14%)
Mutual labels:  project-template, boilerplate, template
Deprecated rust wasm template
Deprecated in favor of rustwasm/wasm-pack-template or rustwasm/rust-webpack-template
Stars: ✭ 108 (-25.52%)
Mutual labels:  boilerplate, template
Node Flowtype Boilerplate
This boilerplate repository is outdated and no longer maintained. Instead, I strongly recommend to use TypeScript.
Stars: ✭ 104 (-28.28%)
Mutual labels:  project-template, boilerplate
Electron Boilerplate
Boilerplate to kickstart creating an app with Electron
Stars: ✭ 1,560 (+975.86%)
Mutual labels:  boilerplate, template
Vite Electron Builder
Electron app boilerplate based on Vite. TypeScript + Vue/React/Angular/Svelte/Vanilla
Stars: ✭ 96 (-33.79%)
Mutual labels:  boilerplate, template
Fable Elmish Electron Material Ui Demo
Complete boilerplate for Electron apps using Fable and Elmish with hot module reloading, time-travel debugging, etc.
Stars: ✭ 101 (-30.34%)
Mutual labels:  boilerplate, template
Caldera
Caldera allows you to create a boilerplate service that ready to run inside the container (Go language)
Stars: ✭ 114 (-21.38%)
Mutual labels:  boilerplate, template
Webpack Defaults
Defaults to be shared across webpack projects
Stars: ✭ 88 (-39.31%)
Mutual labels:  boilerplate, template
React Next Boilerplate
🚀 A basis for reducing the configuration of your projects with nextJS, best development practices and popular libraries in the developer community.
Stars: ✭ 129 (-11.03%)
Mutual labels:  boilerplate, template
Worker Typescript Template
ʕ •́؈•̀) TypeScript template for Cloudflare Workers
Stars: ✭ 129 (-11.03%)
Mutual labels:  boilerplate, template
Awesome Chrome Extension Boilerplate
Use react + typescript + webpack to enhance your chrome extension development experience
Stars: ✭ 146 (+0.69%)
Mutual labels:  boilerplate, template
Flask Rest Template
template for a rest app with flask, flask-rest and more...
Stars: ✭ 95 (-34.48%)
Mutual labels:  boilerplate, template
Projecttemplate
个人项目模板
Stars: ✭ 93 (-35.86%)
Mutual labels:  boilerplate, template
Cloudflare Workers Webpack Boilerplate
A superbly simple, minimal-config template for building, bundling and deploying Cloudflare Workers with Webpack 🚀
Stars: ✭ 101 (-30.34%)
Mutual labels:  boilerplate, template
Androidbase
Android project template for Gradle Kotlin DSL + 100% Kotlin + Base module + Extensions = ❤️
Stars: ✭ 92 (-36.55%)
Mutual labels:  project-template, template
Jade Html5 Boilerplate
HTML5 Boilerplate ported to Jade. Great as a drop and go markup skeleton for Express apps.
Stars: ✭ 111 (-23.45%)
Mutual labels:  boilerplate, template
Automatic Gatsbyjs App Landing Page
Automatic GatsbyJS App Landing Page - Automatically generate iOS app landing page using GatsbyJS
Stars: ✭ 137 (-5.52%)
Mutual labels:  boilerplate, template
Boilr
⚡️ boilerplate template manager that generates files or directories from template repositories
Stars: ✭ 1,268 (+774.48%)
Mutual labels:  boilerplate, template
Phaser3 Tilemap Pack
Phaser 3 Project Template with Webpack, Tilemap, and Asset Pack
Stars: ✭ 87 (-40%)
Mutual labels:  boilerplate, template
Razzle Material Ui Styled Example
Razzle Material-UI example with Styled Components using Express with compression
Stars: ✭ 117 (-19.31%)
Mutual labels:  boilerplate, template

warp-api-starter-template

This is a starting point for a starter template, this is far from usable from a starter template perspective. The work is in progress and not recommended for production use at the moment.

Features

  • REST APIs (Warp + http-api-problem + hyper + tokio)
  • GraphQL Server with Playground (Juniper)
  • Minimal Authentication framework (Argonautica + Biscuit)
  • Redis for cache
  • PostgreSQL for database and SQLx for query
  • systemfd + listenfd to for debug mode auto-reload

Inspired by Meh's blog post.

It all started here → meh/meh.github.io#5

To get started

Run docker-compose up to get the PostgreSQL, Redis and Adminer running Along with our Web API Service. This starts the application in debug mode with auto reload on changes in the source.

docker-compose up

Migrations are handled using movine, This is run inside the debug start script. Adminer instance could be accessed from http://localhost:8080. Refer docker-compose.yml file for configurations and access credentials. If you are not using docker-compose to start the application, install movine using cargo install movine.

The GraphQL playground could be accessed from http://localhost:3535/graphql/playground

To run the application without docker-compose

cp .env.sample .env # make relevant changes to the environment configurations
movine fix # assuming movine is installed, to install movine `cargo install movine`
# run the application in debug mode
RUST_LOG=info cargo run

Release docker build example

export DATABASE_URL=postgres://mydb:[email protected]:5432/mydb # this is required for the build to work, this needed for sqlx macros to verify schema
docker build -t warp-api-release:latest -f release.Dockerfile --build-arg DATABASE_URL .

Run the docker example

docker run --rm -it -p 3535:3535 --env-file .env -e HOST="0.0.0.0:3535" warp-api-release:latest

Refer .env.sample file for the env variables required.

Contributions

With your help we can make this a real good starter template for starting a web service. Contributions are welcome!

License

All contributions will be licensed as MIT

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