Status of blocking calls and thread locals

I have a pool of connections, does execution of querry on connection block the thread? Can connections be used from different threads freely?

Yes query execution does block the current thread as all interfaces do not return any Future (or similar async types). You can move connections to different threads, but not access them from multiple threads at once as they are Send and not Sync. This implies that you cannot share a reference to a connection between multiple threads. This is fundamental to the underlying native database connections and therefore not something that is in control of diesel.