Sparta alternatives and similar packages
Based on the "Server Applications" category.
Alternatively, view Sparta alternatives based on common mentions on social networks and blogs.
-
Caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS -
etcd
Distributed reliable key-value store for the most critical data of a distributed system -
Vault
A tool for secrets management, encryption as a service, and privileged access management -
consul
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. -
apex
Build, deploy, and manage AWS Lambda functions with ease (with Go support!). -
RoadRunner
🤯 High-performance PHP application server, process manager written in Go and powered with plugins -
SFTPGo
Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob -
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go. -
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native) -
Flagr
Flagr is a feature flagging, A/B testing and dynamic configuration microservice -
discovery
A registry for resilient mid-tier load balancing and failover. -
algernon
Small self-contained pure-Go web server with Lua, Teal, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support -
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator -
Key Transparency
A transparent and secure way to look up public keys. -
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites -
jackal
💬 Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP). -
Golang API Starter Kit
Go Server/API boilerplate using best practices DDD CQRS ES gRPC -
go-feature-flag
GO Feature Flag is a simple, complete and lightweight self-hosted feature flag solution 100% Open Source. 🎛️ -
SDNS
A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy. -
Euterpe
Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧 -
goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。 -
Eru
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time. -
marathon-consul
Integrates Marathon apps with Consul service discovery. -
cortex-tenant
Prometheus remote write proxy that adds Cortex/Mimir tenant ID based on metric labels -
go-proxy-cache
Simple Reverse Proxy with Caching, written in Go, using Redis. -
lets-proxy2
Reverse proxy with automatically obtains TLS certificates from Let's Encrypt -
Simple CRUD App w/ Gorilla/Mux, MariaDB
Simple CRUD Application with Go, Gorilla/mux, MariaDB, Redis. -
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -
protoxy
A proxy server than converts JSON request bodies to protocol buffers -
go-fitbit
Fitbit API for Go to fetch, add, update and delete data on Fitbit using REST API -
Gin Healthcheck
Lightweight, customizable healthcheck endpoint for Gin Framework
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of Sparta or a related project?
Popular Comparisons
README
EOL
Times have changed since I started this work. I no longer have the resources to adequately maintain this project. Additionally, there now also exist several other options, including SAM, around which lively communities have formed. With v3, all CloudFormation API changes have been migrated to go-formation and all AWS API SDK calls moved to AWS v2. This likely marks the end of my active development on Sparta.
If this project has been helpful to you and you're interested in becoming a shepherd, please open an issue. Thanks all for your feedback, support, and recommendations over the years.
Keep on serverlessing!
- Matt December 5th, 2021
Sparta v3
This is v3 of Sparta which is not backward compatible with v1 or v2 versions.
Sparta
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:
go get -u -d github.com/magefile/mage
- In the .../mweagle/Sparta directory, run
mage -l
to list the current targets:
\$ mage -l
Targets:
build the application
ciBuild is the task to build in the context of CI pipeline
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
ensureCIBuildEnvironment is the command that sets up the CI environment to run the build.
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
ensureVet ensures that the source has been `go vet`ted
fetchCloudFormationSchema we have the latest CloudFormation schema as part of generating constants.
generateAutomaticCode is the handler that runs the codegen part of things
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
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
unitTest only runs the unit tests
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):
- Kyle Anderson
- James Brook
- Ryan Brown
- sdbeard
- Scott Raine
- Paul Seiffert
- Thom Shutt