Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plan for serde_dynamo 4 #23

Closed
bryanburgers opened this issue Mar 2, 2022 · 2 comments
Closed

Plan for serde_dynamo 4 #23

bryanburgers opened this issue Mar 2, 2022 · 2 comments

Comments

@bryanburgers
Copy link
Contributor

The plan for serde_dynamo version 4 will be:

  • Support aws-sdk version 1.0
  • Drop support for rusoto

serde_dynamo version 3 (published today) effectively supports both aws-sdk and rusoto based on feature flags. It does this because neither of those libraries has reached 1.0; without feature-flag support, any minor version bump to those libraries would require a major version bump to serde_dynamo.

In version 4, we plan to drop support for rusoto. Rusoto is currently in "maintenance mode", so version 3 will continue to support it and there is no reason to continue to support it into version 4 and beyond.

When aws-sdk reaches version 1.0, we can drop the feature flags and just support version 1.0 because at that point, minor bumps to aws-sdk version 1.0 will not require a re-release of serde_dynamo.

@bryanburgers
Copy link
Contributor Author

Change of plans.

Given all of that, I looked into a new way to approach this library, and settled on the following.

  • serde_dynamo v4 will define it's own AttributeValue enum.
  • serde_dynamo v4 will implement From<external_crate::AttributeValue> for AttributeValue and From<AttributeValue> for external_crate::AttributeValue based on features, to make it easy to convert between e.g. aws_sdk_dynamodb::model::AttributeValue and serde_dynamo::AttributeValue.
  • Functions like from_attribute_value/to_attribute_value will deal with anything that is From<AttributeValue>/Into<AttributeValue> to provide an API that is almost exactly like the v3 API.

@mbergkvist
Copy link

This "new type" approach is similar approach I took in my project to convert from the aws_lambda_event AttributeValue to aws_sdk AttributeValue, which I could then use with serde_dynamo 3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants