Skip to content

Release 0.3.0

Compare
Choose a tag to compare
@coltonweaver coltonweaver released this 12 Mar 23:41
fd13527

0.3.0

New: Almost everything!

  • Heavy restructuring was done in order to simplify the runtime and to enable asynchronous handlers by default.

  • The lambda crate has been renamed to lambda_runtime, and the original lambda_runtime has been removed from the project. lambda_http remains the same.

  • The lambda_http crate now supports API Gateway HTTP API Lambda triggers.

  • Both lambda_runtime and lambda_http have noteworthy, breaking API changes. The following is a rough approximation of what a transition to the new runtime API will be:

    note: the runtime is based on std::future::Future based and relies on Tokio via Hyper.

    main.rs

    -use lambda_runtime::{error::HandlerError, lambda, Context};
    +use lambda_runtime::{handler_fn, Context};
    use serde_json::Value;
    
    +type Error = Box<dyn std::error::Error + Sync + Send + 'static>;
    
    -fn main() {
    -    lambda!(handler)
    
    +#[tokio::main]
    +async fn main() -> Result<(), Error> {
    +    lambda_runtime::run(handler_fn(handler)).await?;
    +    Ok(())
    }
    
    -fn handler(
    -    event: Value,
    -    _: Context,
    -) -> Result<Value, HandlerError> {
    +async fn handler(
    +    event: Value,
    +    _:Context
    +) -> Result<Value, Error> {
        Ok(event)
    }

Please refer to the examples in (lambda-runtime/examples; lambda-http/examples) for more detail.