{"id":18320868,"url":"https://github.com/bazaarvoice/awslocal","last_synced_at":"2025-04-05T22:32:06.995Z","repository":{"id":9590269,"uuid":"11508659","full_name":"bazaarvoice/awslocal","owner":"bazaarvoice","description":"Partial implementation of AWS Java SDK that operates locally","archived":false,"fork":false,"pushed_at":"2020-07-13T05:33:57.000Z","size":69,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":36,"default_branch":"master","last_synced_at":"2023-12-20T09:31:41.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bazaarvoice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-18T17:08:41.000Z","updated_at":"2023-12-20T09:31:41.950Z","dependencies_parsed_at":"2022-09-10T21:01:50.884Z","dependency_job_id":null,"html_url":"https://github.com/bazaarvoice/awslocal","commit_stats":null,"previous_names":[],"tags_count":9,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fawslocal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fawslocal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fawslocal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazaarvoice%2Fawslocal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bazaarvoice","download_url":"https://codeload.github.com/bazaarvoice/awslocal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223221194,"owners_count":17108527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T18:17:43.808Z","updated_at":"2024-11-05T18:17:44.369Z","avatar_url":"https://github.com/bazaarvoice.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"awslocal\n========\n\nImplements some of the AWS Java SDK interfaces so that they can work entirely on the local machine.\n\nWhich interfaces?\n-----------------\nCurrently, this implements:\n- SQS queues, by representing queues as directories and messages as files.\n- SNS, but only with the SQS protocol (it represents the topics in memory, and it takes an AmazonSQS implementation to send to SQS protocol subscriptions).\n\nUsing it\n--------\nThis library is built in Java 7.\n- SQS: \n\n  ```java\n  AmazonSQS sqsClient = new DirectorySQS(\"\u003cbase directory for queues\u003e\")\n  ```\n\n  Then just use sqsClient just as the SDK specifies - create queues and send messages!\n  \n- SNS:\n\n  ```java\n  AmazonSNS snsClient = new InMemorySNS(\u003csomething implementing AmazonSQS\u003e)\n  ```\n\n  Again, use it as if it were SNS; subscribe queues to topics, and broadcast to those topics! Note that topics only exist for a specific InMemorySNS.\n\n  ```java\n  AmazonSQS sqs = new DirectorySQS(directory);\n  AmazonSNS sns = new InMemorySNS(sqs);\n\n  String topicName = \"topicName\";\n  String queueName = \"queueName\";\n  CreateTopicResult topicResult = sns.createTopic(new CreateTopicRequest(topicName));\n  CreateQueueResult queueResult = sqs.createQueue(new CreateQueueRequest(queueName));\n  GetQueueAttributesResult queueAttributesResult = sqs.getQueueAttributes(new GetQueueAttributesRequest(queueResult.getQueueUrl()).withAttributeNames(\"QueueArn\"));\n  sns.subscribe(new SubscribeRequest(topicResult.getTopicArn(), \"sqs\", queueAttributesResult.getAttributes().get(\"QueueArn\")));\n  ```\nSee the tests for further examples of use.\n\nFurther development\n--------------------\nThese implementations have been tested fairly thoroughly, so you should be able to rely on them for testing projects that use SNS and SQS.\nWe (Robby and Aidan) haven't needed any other interfaces implemented yet, so we don't have plans to add more stuff.\nHowever, if you find any bugs, please do open a ticket, and we'll see what we can do!\nIf you want to add implementations for further interfaces, send us a pull request and we'll take a look.\n\nLicensing\n---------\nSee the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fawslocal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbazaarvoice%2Fawslocal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazaarvoice%2Fawslocal/lists"}