OQS
or Open Quick Script
is an expression language intended to be universally adoptable, streamlined, and system-neutral scripting language that integrates effortlessly into diverse platforms.
OQS
is not designed to be a feature complete programming language. Rather, it is designed to be a simple, yet powerful, expression engine. It is specifically crafted to process expressions encompassing fundamental types and operations, interpreting a solitary expression—optionally accompanied by a dictionary, map, or JSON containing variables—to yield a consistent and logical outcome.
The language specification was writen as a guide for anyone seeking to write an implementation of OQS
. It is a living document and will be updated on regular intervals to keep up with the languages developing needs.
There is a full change history of everything in this repository available in this repository by going through the git changes.
The language specification contains the current version of the language. There is also a folder in this repository called 'specification_history' that contains a copy of all versions of the specification.
All sample implementations should also contain their version history. Details about this should be in the sample implementation README.md.
In order to ensure the accessibility of OQS
, our team puts a lot of effort into maintaining a few implementations of OQS
for public use.
Note: These implementations are not built to be very feature rich. They are simply built to demonstrate the simplicity of OQS
and ensure that there are open-source and free versions of language available for the public to use and build from if they so chose.
The current implementations maintained by the OQS
team are as follows:
- Python. The full code of the implementation is available in the folder named 'python_oqs_implementation' at the base of this repository. If you with to use this implementation, you can follow the instructions listed in the README for python implementation.
The OQS
language is designed to be open and universal. We encourage everyone to build their own implementations of this language for private or public use. The specification guide is there to assist with that. Therefor, we ask that all implementations abide by the same specification and are built in such a way that anyone writing an expression for one implementation would be able to use the same expression across any implementation and expect the same results. There is a file in the root of this directory named tests.json in order to assist with that. We ask that all implementations be built in such a way that it can pass all tests specified there.
OQS
is dedicated to remaining an open-source project accessible to all. We have chosen the Creative Commons Attribution 4.0 International License (CC BY 4.0) for OQS
. This license permits free use, modification, distribution, and even commercial exploitation, provided that appropriate credit is given to the original creators.
We endorse the principles of open-source and encourage the community to engage with, enhance, and disseminate OQS
while respecting the terms of this license.
For complete license details, refer to the LICENSE file in the repository.
Contributions to OQS
are warmly welcomed and greatly appreciated. Here are ways you can contribute:
- Submitting Bug Reports or Feature Requests: Use the Issues section to report bugs or suggest new features.
- Improving Documentation: Enhance the existing documentation or write tutorials.
- Submitting Pull Requests: Fork the repository, create a new branch for your work, and submit a pull request.
The OQS
language and the language specification are supported and maintained by Infuzu.
Yidi Sprei is the founding author of OQS
and wrote the first version of the specification.
The following individuals are core maintainers of the Python OQS Implementation: