PyQ, or Python for kdb+, is a set of software components that simplifies the running of a Python interpreter embedded in a kdb+ server. Kdb+ is an in-memory, time-series database with a built-in programming language called q. Widely used in financial services, kdb+ is also increasingly being used in other industries with streaming Big Data business applications. Kx will open source PyQ on GitHub.
PyQ functions as an extension to kdb+ and features zero-copy sharing of data between Python and the q programming language, as well as a means to call Python functions from q and q functions from Python. For a Python programmer, PyQ gives them direct access to data in kdb+ without the need to program in q. For a q programmer, PyQ offers easy access to computational and visualization libraries available for Python.
Alexander Belopolsky, founder of Enlightenment Research said: "While q has many advantages over Python in speed and expressiveness, there are far more Python programmers than q programmers. PyQ allows Python programmers to tap into kdb+'s speed without having to learn another language. For a Python programmer, PyQ can be a native guide in a foreign land. For a q programmer, PyQ brings hundreds of thousands of Python libraries into their toolkit."
Mark Sykes, COO Kx Systems said: "PyQ has set the standard over the years for bringing the power and speed of kdb+ to Python users. With over a decade of development, and hardened with deployments across many enterprises, PyQ is a natural fit in the growing kdb+ family of Fusion interfaces. It is the perfect partner to our forthcoming embedPy library which opens up machine learning and Python to kdb+ developers. We are grateful to Alex for allowing us to bring this technology to our entire user base, and we are releasing it under the Apache 2 license free of charge, with immediate effect."