See the project website for documentation and APIs.
Misk is a new open source application container from Cash App.
Misk is not ready for use. The API is not stable.
Our change log has release history. API is subject to change.
implementation("com.squareup.misk:misk:0.24.0")Snapshot builds are available.
The core annotations and interfaces necessary to define actions that can be hosted in Misk. This package has no dependency on the enclosing container (Misk!) and so your actions can be used in other environments without any heavy dependencies.
Actions should extend WebAction, be annotated with a HTTP method like @Post, accept a
request object and return a response object. Throw an exception like BadRequestException to
fail the request without much boilerplate.
Integrate with Amazon Web Services, and includes packages to integrate with S3 and SQS.
Integrate with AWS DynamoDb using AWS SDK for Java 1.x. It should be safe to install side-by-side
with misk-aws2-dynamodb if you need to use features in both.
Integrate with this package to write tests for code that interacts with DynamoDb.
Exposes APIs via AWS SDK for Java 1.x. Use alongside with misk-aws-dynamodb.
Installing InProcessDynamoDbModule runs a DynamoDb Local instance in memory for your
tests to run against. This module is recommended over DockerDynamoDbModule because there is less
overhead in test execution performance.
Installing DockerDynamoDbModule runs a DynamoDB Local instance in Docker for your tests to execute
against.
Integrate with AWS DynamoDb using AWS SDK for Java 2.x. It should be safe to install side-by-side
with misk-aws-dynamodb if you need to use features in both.
Please read the AWS SDK for Java 2.x Migration Guide for more details.
Integrate with this package to write tests for code that interacts with DynamoDb.
Exposes APIs via AWS SDK for Java 2.x. Use alongside with misk-aws2-dynamodb.
Installing InProcessDynamoDbModule runs a DynamoDb Local instance in memory for your
tests to run against. This module is recommended over DockerDynamoDbModule because there is less
overhead in test execution performance.
Installing DockerDynamoDbModule runs a DynamoDB Local instance in Docker for your tests to execute
against.
Bind Guava services with inter-service dependencies.
Any service can depend on any other service. ServiceManager won't start a service until the services it depends on are running.
Integrates Guice with Kotlin.
Extending KAbstractModule instead of Guice's AbstractModule lets you use KClass instead
of java.lang.Class and other conveniences.
Runtime feature flags. misk-launchdarkly is the reference implementation.
A job queue with a high quality fake. AwsSqsJobQueueModule from misk-aws is the reference
implementation.
An event publisher + consumer. There is no open source reference implementation at this time.
Misk-Web powers the Misk Admin Dashboard with modular Typescript + React powered tabs.
Check out Misk-Web!
The wisp* modules contain no Dependency Injection based code (i.e. no Guice, etc) and back many misk* module implementations.
Wisp used to live inside Misk. It now has its own project.
Misk apps should use wisp modules directly with caution as breaking changes might be required.
