---
title: New Python Library With Types and Asyncio
authors: ['tom']
date: 2022-03-14T12:00:00
tags: ['News', 'Product']
summary: We just released a new version of the Python lib that supports both Python 3.6+ types and asyncio.
---

![Cover image](./cover.png)

This is a bit of a quick update, but we thought it warranted a blog post, because it's something quite a few people have been asking for (our own team included!).

## What is Typed Python?

Python is an untyped language, but starting with [PEP 484](https://peps.python.org/pep-0484/) it now supports type hints. The type hints let you annotate functions with the type information and have it tested in CI to make sure types are correct.

This is an important step for secure coding, and a great improvement for teams that use types in their Python codebase.

## What is `asyncio`?

As noted in the [Python docs](https://docs.python.org/3/library/asyncio.html), `asyncio` is a library to write concurrent code using the `async`/`await` syntax.

`asyncio` is used as a foundation for multiple Python asynchronous frameworks that provide high-performance network and web-servers, database connection libraries, distributed task queues, etc.

`asyncio` is often a perfect fit for IO-bound and high-level structured network code.

Before this change, the Svix library was blocking, which meant that it was blocking the call thread until it got a response from the server. It wasn't a big deal if your code was sync, but for async code it made development slightly more painful, and much less efficient.

## How do I use it?

Make sure to update to the latest Python library version (`>=0.53.0` at the time of this writing), and start using it.

Types will automatically work, though you may need to remove any type ignores you added because we didn't have types until now.

As for `asyncio`, you will just need to change your code to use the `asyncio` variant as so:

```python
from svix.api import Svix

svix = Svix("AUTH_TOKEN")
app = svix.application.create(ApplicationIn(name="Application name"))
```

Becomes

```python
from svix.api import SvixAsync

svix = SvixAsync("AUTH_TOKEN")
app = await svix.application.create(ApplicationIn(name="Application name"))
```

## Breaking changes

Since we were already making so many changes, we took the opportunity to make a small breaking change. This breaking change is very much visible, and if you use it you'll know immediately: we changed the name of the `exception` type.

We had to do it because we also changed the internals a bit to consolidate the type, and we realized that if we kept the same name it may break code in subtle ways. So changing it was the only way to make sure that it will let people know that it has changed.

We are sorry for this, but going forward there will be no breaking changes for this library.

## Coming next

We have a lot more in the works that we'll share in upcoming updates, stay tuned!
If you have any thoughts or suggestions regarding what we should work on next, please [join the Svix Slack](https://www.svix.com/slack/) and let us know!

This is it for this update, but make sure to follow us on [Twitter](https://twitter.com/SvixHQ), [Mastodon](https://mastodon.social/@svixhq), [Github](https://github.com/svix) or [RSS](https://www.svix.com/blog/rss/) for the latest updates for the [Svix webhook provider](https://www.svix.com), or join the discussion on [our community Slack](https://www.svix.com/slack/).
