If not is there a reasonably similar open source library?