All Projects → mweagle → Sparta

mweagle / Sparta

Licence: mit
go microservices, powered by AWS Lambda

Programming Languages

javascript
184084 projects - #8 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Sparta

Puppeteer Lambda Starter Kit
Starter Kit for running Headless-Chrome by Puppeteer on AWS Lambda.
Stars: ✭ 563 (-18.05%)
Mutual labels:  serverless, aws-lambda
Sls Dev Tools
Dev Tools for the Serverless World - Issues, PRs and ⭐️welcome!
Stars: ✭ 662 (-3.64%)
Mutual labels:  serverless, aws-lambda
Scope
🔭 Scope - Create a birdeye's view of your Github project and embed on your site
Stars: ✭ 453 (-34.06%)
Mutual labels:  serverless, aws-lambda
Serverless Express
Run Node.js web applications and APIs using existing application frameworks on AWS #serverless technologies such as Lambda, API Gateway, Lambda@Edge, and ALB.
Stars: ✭ 4,265 (+520.82%)
Mutual labels:  serverless, aws-lambda
Serverless Plugin Typescript
Serverless plugin for zero-config Typescript support
Stars: ✭ 611 (-11.06%)
Mutual labels:  serverless, aws-lambda
Serverless Offline
Emulate AWS λ and API Gateway locally when developing your Serverless project
Stars: ✭ 4,330 (+530.28%)
Mutual labels:  serverless, aws-lambda
Corral
🐎 A serverless MapReduce framework written for AWS Lambda
Stars: ✭ 648 (-5.68%)
Mutual labels:  serverless, aws-lambda
Vandium Node
AWS Lambda framework for building functions using Node.js for API Gateway, IoT applications, and other AWS events.
Stars: ✭ 377 (-45.12%)
Mutual labels:  serverless, aws-lambda
Aws Lambda Zombie Workshop
Code and walkthrough labs to set up a serverless chat application for the Zombie Apocalypse Workshop
Stars: ✭ 622 (-9.46%)
Mutual labels:  serverless, aws-lambda
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 (+608.73%)
Mutual labels:  serverless, aws-lambda
Serverless Libreoffice
Run LibreOffice in AWS Lambda to create PDFs & convert documents
Stars: ✭ 410 (-40.32%)
Mutual labels:  serverless, aws-lambda
Downloadthisvideo
Twitter bot for easily downloading videos/GIFs off tweets
Stars: ✭ 530 (-22.85%)
Mutual labels:  serverless, aws-lambda
Serverless Rust
⚡ 🦀 a serverless framework plugin for rustlang applications
Stars: ✭ 386 (-43.81%)
Mutual labels:  serverless, aws-lambda
Guide
Serverless Guide - An open-source definitive guide to serverless architectures.
Stars: ✭ 421 (-38.72%)
Mutual labels:  serverless, aws-lambda
Lib
Autocode CLI and standard library tooling
Stars: ✭ 3,773 (+449.2%)
Mutual labels:  serverless, aws-lambda
Mangum
AWS Lambda & API Gateway support for ASGI
Stars: ✭ 475 (-30.86%)
Mutual labels:  serverless, aws-lambda
Claudia
Deploy Node.js projects to AWS Lambda and API Gateway easily
Stars: ✭ 3,690 (+437.12%)
Mutual labels:  serverless, aws-lambda
Serverless Wsgi
Serverless plugin to deploy WSGI applications (Flask/Django/Pyramid etc.) and bundle Python packages
Stars: ✭ 377 (-45.12%)
Mutual labels:  serverless, aws-lambda
Chromda
λ 🖼️ Chromda is an AWS Lambda function for capturing screenshots of websites.
Stars: ✭ 481 (-29.99%)
Mutual labels:  serverless, aws-lambda
Gateway
Drop-in replacement for Go net/http when running in AWS Lambda & API Gateway
Stars: ✭ 484 (-29.55%)
Mutual labels:  serverless, aws-lambda

Sparta

Build Status

GoDoc

Go Report Card

Visit gosparta.io for complete documentation.

Version Info

This is the breaking v2 version of Sparta. The previous version is available at at the /v1 branch.

Overview

Sparta takes a set of golang functions and automatically provisions them in AWS Lambda as a logical unit.

AWS Lambda functions are defined using the standard AWS Lambda signatures:

  • func()
  • func() error
  • func(TIn) error
  • func() (TOut, error)
  • func(context.Context) error
  • func(context.Context, TIn) error
  • func(context.Context) (TOut, error)
  • func(context.Context, TIn) (TOut, error)

The TIn and TOut parameters represent encoding/json un/marshallable types.

For instance:

// Standard AWS λ function
func helloWorld(ctx context.Context) (string, error) {
  ...
}

where

  • ctx : The request context that includes both the AWS Context as well as Sparta specific values

Consumers define a set of lambda functions and provide them to Sparta to create a self-documenting, self-deploying AWS Lambda binary:

  lambdaFn, _ := sparta.NewAWSLambda("Hello World",
    helloWorld,
    sparta.IAMRoleDefinition{})

  var lambdaFunctions []*sparta.LambdaAWSInfo
  lambdaFunctions = append(lambdaFunctions, lambdaFn)

  err := sparta.Main("HelloWorldStack",
    "My Hello World stack",
    lambdaFunctions,
    nil,
    nil)

Visit gosparta.io for complete documentation.

Contributing

Sparta contributions are most welcome. Please consult the latest issues for open issues.

Building

Locally building or testing Sparta itself is typically only needed to make package changes. Sparta is more often used as a required import of another application. Building is done via mage.

To get started building and verifying local changes:

  1. go get -u -d github.com/magefile/mage
  2. In the .../mweagle/Sparta directory, run mage -l to list the current targets:
\$ mage -l
Targets:
build the application
clean the working directory
compareAgainstMasterBranch is a convenience function to show the comparisons of the current pushed branch against the master branch
describe runs the `TestDescribe` test to generate a describe HTML output file at graph.html
docsBuild builds the public documentation site in the /docs folder
docsCommit builds and commits the current documentation with an autogenerated comment
docsEdit starts a Hugo server and hot reloads the documentation at http://localhost:1313
docsInstallRequirements installs the required Hugo version
ensureAllPreconditions ensures that the source passes _ALL_ static `ensure*` precondition steps
ensureCleanTree ensures that the git tree is clean
ensureFormatted ensures that the source code is formatted with goimports
ensureGoFmt ensures that the source is `gofmt -s` is empty
ensureLint ensures that the source is `golint`ed
ensureMarkdownSpelling ensures that all \*.MD files are checked for common spelling mistakes
ensurePrealloc ensures that slices that could be preallocated are enforced
ensureSpelling ensures that there are no misspellings in the source
ensureStaticChecks ensures that the source code passes static code checks
ensureTravisBuildEnvironment is the command that sets up the Travis environment to run the build.
ensureVet ensures that the source has been `go vet`ted
generateBuildInfo creates the automatic buildinfo.go file so that we can stamp the SHA into the binaries we build...
generateConstants runs the set of commands that update the embedded CONSTANTS for both local and AWS Lambda execution
installBuildRequirements installs or updates the dependent packages that aren't referenced by the source, but are needed to build the Sparta source
logCodeMetrics ensures that the source code is formatted with goimports
publish the latest source
test runs the Sparta tests
testCover runs the test and opens up the resulting report
travisBuild is the task to build in the context of a Travis CI pipeline

Confirm tests are passing on HEAD by first running mage -v test.

As you periodically make local changes, run mage -v test to confirm backward compatibility.

Tests

When possible, please include a test case that verifies the local change and ensures compatibility.

Contributors

Thanks to all Sparta contributors (alphabetical):

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