Well core.async is a Clojure library so it uses features available in Clojure. I don't see how it would affect the fact that it is a library.
I've also linked to js-csp, a JS library obviously not implemented using macros.
I can also find other examples of implementation as libraries, but I have no experience with them:
- Scala: https://github.com/rssh/scala-gopher