actix-web icon indicating copy to clipboard operation
actix-web copied to clipboard

lazy data type

Open robjtede opened this issue 4 years ago • 0 comments

Motivation

The ~now deprecated~ App::data_factory method ~was is not very useful because it ran the~ runs futures to completion before starting the server up. For semi-expensive constructions it can be beneficial to delay their creation until a request needs it for the first time.

For example: especially in development when using debug builds, operations such as key derivation are very slow and are often only needed for a small set of endpoints. If you can afford a single slow op (per-worker) at app startup then such a type is useful. Otherwise, constructing the type before server creation is necessary.

Solution

A way to lazily initalize data maybe built in Tokio's new OnceCell type: LazyData.

robjtede avatar Jun 23 '21 17:06 robjtede