Amazonite AWS SDK
Amazonite is an unofficial AWS SDK for Crystal.
Usage
Here's an example that creates a table in DynamoDB:
require "amazonite/dynamodb_v2"
private alias DB = Amazonite::DynamoDBv2
model = DB::CreateTableInput.new(
[
DB::AttributeDefinition.new("Artist", DB::ScalarAttributeType::S),
DB::AttributeDefinition.new("SongTitle", DB::ScalarAttributeType::S)
],
"Music",
[
DB::KeySchemaElement.new("Artist", DB::KeyType::Hash),
DB::KeySchemaElement.new("SongTitle", DB::KeyType::Range)
],
provisioned_throughput: DB::ProvisionedThroughput.new(10, 5),
)
client = DB::Client.new
response = client.create_table(model)
puts response.http.status_code # 200
result = response.result
puts result.table_description.try &.table_name # Music
puts result.table_description.try &.attribute_definitions.try &.[0].attribute_name # Artist
Output:
200
Music
Artist
Supported APIs
| Name | Supported? |Integration Tests | Notes | | ------------- | :-------------: | :---------------: |------------- | | DynamoDB | ✅ |✅ | | | S3 | 🚫 | 🚫 | Consider using awscr-s3 |
Installation
-
Add the dependency to your
shard.yml
:dependencies: amazonite: github: rjnienaber/amazonite
-
Run
shards install
Development
Once you've cloned the repo, have a look at the scripts
directory for some scripts that help with development. Some of them use the excellent watchexec tool to watch for changes.
./scripts/watch_specs.sh
- watches for code changes and runs the specs
./scripts/watch_codegen.sh
- watches for code changes and regenerates the code for apis
./scripts/watch_integration.cr
- watches for code changes and executes integration tests
Contributing
- Fork it (https://github.com/rjnienaber/amazonite/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- Richard Nienaber - creator and maintainer