We made a decision early on to focus on Rust as our core programming language for Microservices and RESTful API services. We continue to fully support Go, and our libraries and services are accessible from Python, C, C++, Java, JavaScript, and other programming languages and environments. But Rust is definitely ideal for our core Natural Language Processing (NLP) technologies and libraries.
Why are we developing our core tech in Rust?
There are various reasons, and the most important ones are: Rust means safety, speed, and efficiency with a low memory footprint.
With its low overhead we can target server, desktop, and embedded systems, thus delivery of efficient NLP and AI tech to IoT and High Performance Computing (HPC) uses the same code-base, that is true cross-platform development from the outset.
Being able to take NLP and AI technologies to HPC platforms or to Edge Computing environments, even into restricted embedded systems opens up new application scenarios that most other NLP and AI technologies written in Python or Java do not enable.
Our goal is to entrich the Rust ecosystem with advanced NLP and AI libraries, including Deep Learning and Machine Learning algorithms, as well as symbolic and qualitative methods.
Semiring provides code examples to access its NLP APIs in Rust, Go. Python, Java, JavaScript, and many other languages, actually including Common Lisp and Prolog.
The JSON-NLP Standard
At Semiring we have worked on the further specification of JSON-NLP to enable standardized encoding of the advanced NLP annotations that the Semiring NLP API generates. The JSON-NLP Schema we have implemented in many languages, including Rust and Go:
- Rust JSON-NLP (see also Rust JSON-NLP at Crates.io)
- Go JSON-NLP
See the documentation of JSON-NLP for more details.
Rust Access to the Semiring API
Sample Rust code for accessing the Semiring NLP API can be found on GitHub:
Semiring Rust NLP API
What’s Next?
Expect more NLP, AI, and Knowledge Graph code and libraries emerging in the GitHub repos of Semiring Inc.