mockersf / serde_dynamodb

Talk with dynamodb using your existing structs thanks to serde

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Impossible to use dynamodb_streams with rustls

james-tru opened this issue · comments

Hi.

Trying to cross-compile from Mac to AWS Lambda (or upgrade softprops to 1.50) hits OpenSSL errors pretty much any way you come at it. So I've been trying to get rusoto to use rustls. The problem is, for anything that listens to Dynamo Streams as a trigger, serde_dynamodb looks like the only way to deserialize the incoming event (it's not in aws_lambda_events).

serde_dynamodb has a 'rustls' feature that it passes on to rusoto_dynamodb and it has a 'rusoto_dynamodbstreams' feature for working with streams. The problem is that 'rusoto_dynamodbstreams' depends on rusoto with default-featurees turned on.

I see two ways to fix this: either split serde_dynomodbstreams into its own crate with the same 'rustls' feature flag, or add 'rusoto_dynamodbstreams_rustls' as another feature flag. I think the first option sounds better, as the second one opens the door to feature flag explosion

Thank you for reporting this!

I added features to choose which implementation you want in dynamodb_streams:

streams = ["rusoto_dynamodbstreams", "rusoto_dynamodbstreams/rustls"]
streams-rustls = ["rusoto_dynamodbstreams", "rusoto_dynamodbstreams/rustls"]
streams-native-tls = ["rusoto_dynamodbstreams", "rusoto_dynamodbstreams/native-tls"]