{"id":13481561,"url":"https://github.com/scanamo/scanamo","last_synced_at":"2025-05-15T03:07:37.639Z","repository":{"id":37432161,"uuid":"50833795","full_name":"scanamo/scanamo","owner":"scanamo","description":"Simpler DynamoDB access for Scala","archived":false,"fork":false,"pushed_at":"2025-01-11T10:08:16.000Z","size":38503,"stargazers_count":319,"open_issues_count":55,"forks_count":125,"subscribers_count":33,"default_branch":"main","last_synced_at":"2025-04-14T03:09:58.963Z","etag":null,"topics":["dynamodb","scala"],"latest_commit_sha":null,"homepage":"https://www.scanamo.org","language":"Scala","has_issues":true,"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/scanamo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-02-01T10:58:52.000Z","updated_at":"2025-03-18T21:49:02.000Z","dependencies_parsed_at":"2024-04-19T22:39:55.744Z","dependency_job_id":"a99d3570-31c4-447d-b7ab-2282b8968bb4","html_url":"https://github.com/scanamo/scanamo","commit_stats":{"total_commits":1514,"total_committers":78,"mean_commits":19.41025641025641,"dds":0.8143989431968296,"last_synced_commit":"59f1a277ba503e8a9b5f03cb56d8650d6ef38905"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanamo%2Fscanamo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanamo%2Fscanamo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanamo%2Fscanamo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scanamo%2Fscanamo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scanamo","download_url":"https://codeload.github.com/scanamo/scanamo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264769,"owners_count":22041794,"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":["dynamodb","scala"],"created_at":"2024-07-31T17:00:52.810Z","updated_at":"2025-05-15T03:07:32.619Z","avatar_url":"https://github.com/scanamo.png","language":"Scala","readme":"# Scanamo\n\n[![scanamo Scala version support](https://index.scala-lang.org/scanamo/scanamo/scanamo/latest-by-scala-version.svg?platform=jvm)](https://index.scala-lang.org/scanamo/scanamo/scanamo)\n[![CI](https://github.com/scanamo/scanamo/actions/workflows/ci.yml/badge.svg)](https://github.com/scanamo/scanamo/actions/workflows/ci.yml)\n\nScanamo is a library to make using [DynamoDB](https://aws.amazon.com/documentation/dynamodb/) with Scala \nsimpler and less error-prone. The library is currently maintained by Roberto Tyley (@rtyley).\n\nThe main focus is on making it easier to avoid mistakes and typos by leveraging Scala's type system and some\nhigher level abstractions.\n\nInstallation\n------------\n\n```scala\nlibraryDependencies += \"org.scanamo\" %% \"scanamo\" % \"1.0.0\"\n```\n\nBasic Usage\n-----------\n\n```scala\nscala\u003e import org.scanamo._\nscala\u003e import org.scanamo.syntax._\nscala\u003e import org.scanamo.generic.auto._\n \nscala\u003e val client = LocalDynamoDB.client()\nscala\u003e import software.amazon.awssdk.services.dynamodb.model.ScalarAttributeType._\nscala\u003e val farmersTableResult = LocalDynamoDB.createTable(client)(\"farmer\")(\"name\" -\u003e S)\n\nscala\u003e case class Farm(animals: List[String])\nscala\u003e case class Farmer(name: String, age: Long, farm: Farm)\nscala\u003e val table = Table[Farmer](\"farmer\")\n\nscala\u003e val ops = for {\n     |   _ \u003c- table.putAll(Set(\n     |       Farmer(\"McDonald\", 156L, Farm(List(\"sheep\", \"cow\"))),\n     |       Farmer(\"Boggis\", 43L, Farm(List(\"chicken\")))\n     |     ))\n     |   mcdonald \u003c- table.get(\"name\" -\u003e \"McDonald\")\n     | } yield mcdonald\nscala\u003e Scanamo.exec(client)(ops)\nres1: Option[Either[error.DynamoReadError, Farmer]] = Some(Right(Farmer(McDonald,156,Farm(List(sheep, cow)))))\n```\n\n_Note: the `LocalDynamoDB` object is provided by the `scanamo-testkit` package._\n\nFor more details, please see the [Scanamo site](http://www.scanamo.org).\n\nLicense\n-------\n\nScanamo is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) (the \"License\"); \nyou may not use this software except in compliance with the License.\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific \nlanguage governing permissions and limitations under the License.\n","funding_links":[],"categories":["Database","NoSQL","Table of Contents"],"sub_categories":["Database"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscanamo%2Fscanamo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscanamo%2Fscanamo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscanamo%2Fscanamo/lists"}