mantil

module
v0.2.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2022 License: MIT

README

License tests codecov

Serverless development kit for Go and AWS Lambda

Cloud-native development demands a new approach to building, launching, and observing cloud apps. Mantil is a modern open-source framework for writing serverless apps in Go. It allows you to quickly create and deploy applications that use AWS Lambda over a command line interface.

About Mantil

🧑‍💻 Tailored for developers

There are many serverless tools out there focused on building infrastructure. In Mantil, developers write pure Go code without any notion of AWS or Lambda. Therefore, you don't need an upfront understanding of the complex AWS ecosystem and tooling.

☁️ Cloud environments

Get the feeling of local development while using real services in the cloud. With built-in support for multiple development stages and parallel lines of deployment, you still keep your private development sandbox. But in the serverless world, all environments are essentially the same environments.

🤩 Continuous deployment

Many developers who have played with AWS Lambda complain about frustrating build experiences where you need to make a number of steps manually. With mantil watch app is deployed automatically on every save. Moreover, it is done in seconds, so fluid development workflow is preserved.

Mantil also supports code testing via standard go tests or by invoking a specific function and getting logs instantly during function execution (not after the function is completed). And much more.

Quick Start

To get started with Mantil, you need to have installed Go and access to AWS account. Follow these few simple steps, and you will be up and running in minutes.

# Install Mantil CLI
$ brew tap mantil-io/mantil
$ brew install mantil

# Install Mantil Node on AWS
$ mantil aws install --aws-profile=my-named-profile

# Create your first Mantil project (it just creates project structure)
$ mantil new my-project
$ cd my-project

# Deploy your project to development stage
$ mantil stage new development

And that's it, you've created your first serverless app using Mantil. Read Getting Started tutorial or watch the accompanying video to dive deep into each step and to learn more about how to work with Mantil.

Mantil CLI is also available on Windows and Linux via direct download.

Documentation

Check out documentation to get into specific areas of Mantil:

Examples

Choose from among several guided tutorials that will give you step-by-step examples of various features of Mantil:

  • Chat - demonstrates WebSocket Mantil API interface
  • Todo - simple todo app showcasing persistent key/value storage
  • Signup - example of simple signup workflow
  • Excuses - UI and environment variables showcase
  • Github to Slack - example of serverless integration between GitHub and Slack
  • HN alerts - example of scheduled lambda function that will look for new HackerNews stories containing certain keywords
  • Mongo Atlas - example of using Mantil with Mongo Atlas
  • Presigned s3 upload - template showing upload of files to S3 bucket through presigned URLs
  • NGS chat - example of chat implemented with NATS

Feedback

We'd love to hear from you. If you would like to getting in touch DM us on Twitter @MantilDev.

⭐️ If you like Mantil, give it a star! ⭐️

Directories

Path Synopsis
cli
cmd
controller/invoke
Package invoke provides functions for invoking lambda functions.
Package invoke provides functions for invoking lambda functions.
log
Slack reference: https://atoz-technology.slack.com/archives/C024QHF6ZUN/p1633107324326000?thread_ts=1633010861.297400&cid=C024QHF6ZUN
Slack reference: https://atoz-technology.slack.com/archives/C024QHF6ZUN/p1633107324326000?thread_ts=1633010861.297400&cid=C024QHF6ZUN
secret
Package secrets provides credentials embeded into cli binary.
Package secrets provides credentials embeded into cli binary.
ui
Package domain provides core mantil domain model.
Package domain provides core mantil domain model.
kit
Package kit is project standard library
Package kit is project standard library
aws
clitest
fetures: * snima stdout i stderr na disk kako se koji pojavi * vraca nekog tko radi asserts rezultat: stdout, stderr, exitcode \ * moze se postaviti
fetures: * snima stdout i stderr na disk kako se koji pojavi * vraca nekog tko radi asserts rezultat: stdout, stderr, exitcode \ * moze se postaviti
git
gz
node
dto
scripts
aws/create_release_buckets
Creates release buckets for all regions, enables versioning, adds necessary policy and adds replication rule for replicationPrefix in mainBucket
Creates release buckets for all regions, enables versioning, adds necessary policy and adds replication rule for replicationPrefix in mainBucket

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL