This implementation uses an actor as the manager for contexts, as well as try-catching any exceptions that may arise when using the zstd module.
Using an actor makes the context automatically be cleaned up when the actor is stopped/killed, preventing memory leaks.
Also more documentation.