Getting started
Visit the main Noumena Protocol Language (NPL) page for an overview of what NPL is and its applications.
Language Concepts
NPL has many different concepts to learn about.
- Learn about the standard library that includes built in types and functions.
- Read about language constructs such as keywords, annotations, functions and many more.
NPL Plugin for IntelliJ IDEA
For an optimal development experience, it's recommended to use IntelliJ IDEA because of the NPL-Dev plugin. This plugin provides a myriad of features to facilitate your NPL development, such as:
- Compilation
- Navigation
- Autocompletion
- Quick Fixes
- Error and warning highlighting
- Refactoring
- Testing
- Debugging
- Sandboxing
Creating an NPL Protocol
After installing the plugin, you're set to create NPL files. As a starting point, refer to this IOU example to design your first protocol.
Protocol Composition
The IOU is a straightforward example for newcomers. However, protocols can increase in complexity by incorporating/referencing other protocols. This modular approach aids in distinguishing different business domain concepts. Explore the Protocol Composition page to see how NPL can help you encapsulate comprehensive business logic.
Next steps with NPL
- For a quick reference, download the pdf cheat sheet.
- Dive into the Coding Conventions to familiarize yourself with idiomatic NPL practices.
- Explore the authorization guide to see how NPL interacts with your Identity and Access Management (IAM) through Parties.
- Learn about Ownership Transfer to understand how protocol ownership transitions can be managed.
- Finally, familiarize yourself with Migrations to understand their role in upgrading existing NPL protocols within applications.
Next steps with the Platform
Once your protocols are in place, you might wish to deploy the sources to a platform instance. For guidance on this, consult the platform getting started guide.
NPL Contributor Library
If you wish to contribute to the NPL community, you can! An NPL contributor library lets you package NPL constructs such as types and functions and share them with the world! See npl-contrib getting started guide.