IOTA introduces a lot of new concepts, such as the Tangle and Trinary, which may seem difficult to use. That’s why we have some excellent client libraries that abstract most of the concepts into easy-to-use functions.

To help you start developing with IOTA technology, we created several ‘workshops’ for the C, Go, JavaScript and Python libraries. They teach the most common things you will do with these libraries and give concrete code examples that demonstrate how to do these interactions. The workshops are great to use when you are starting with IOTA or when you are teaching others about what IOTA is and how to interact with the Tangle.

The C workshop

The client library for the C programming language is called “Entangled” and is one of the harder libraries to work with. That’s because it has been written in a low-level programming language.

Low-level programming languages are great for performance. They are good for devices with limited processing power/memory. However, you have to do a lot more yourself when it comes to programming — memory management, for example — which makes it harder to work with over higher-level languages, like Python or JavaScript.

The Entangled client library, built from the ground up by the IOTA Entangled team, can do a lot of things in a lot of different ways. It’s an excellent candidate for a workshop!

The workshop currently consists of examples of how to:

Send and receive transactions

Check your balance

Generate new addresses

Send IOTA coins

The C Workshop can easily be cloned from the IOTA Community GitHub. The Bazel build tool is the only dependency you need to get started.

The Go workshop

The Go programming language is a well-performing programming language that has gained a lot of popularity over the last couple of years.

Go is a good compromise between the development of a higher-level language and the performance of a lower level one. The Go Client Library for IOTA offers all the basic functionality you need to interact with the Tangle using Go. This library is actively maintained by the IOTA Foundation and is extensively used in the GoShimmer prototype for Coordicide.

The Go workshop currently consists of examples of how to:

Send and receive transactions

Check your balance

Generate new addresses

Send IOTA coins

Send and receive multi-transaction messages

Utilize a real-time stream of incoming transactions using ZeroMQ

The Go Workshop can be cloned from the IOTA Community GitHub, all you need is Go version 1.10 or higher.

The JavaScript workshop

The JavaScript workshop was the first workshop created — and with a good reason: JavaScript/Typescript is very often used in the IOTA Ecosystem, including the Trinity Wallet software and a lot of the proof of concepts built by the IOTA Foundation and IOTA communities.

JavaScript/TypeScript can be used in browsers (clientside) or servers in combination with Node.js (serverside), which makes it very versatile when integrating IOTA in a web-application.

The iota.js client library is a client library maintained by the IOTA Foundation and written in TypeScript. It will most likely be your best bet when you want to develop something with JavaScript and IOTA.

The JavaScript workshop currently consists of examples of how to:

Send and receive transactions

Check your balance

Generate new addresses

Send IOTA coins

Send and receive multi-transaction messages

Utilize a real-time stream of incoming transactions using ZeroMQ

Send and receive data using MAM0 streams.

The JavaScript Workshop can also be cloned from the IOTA Community GitHub repository. All you need to run them is a recent version of Node.js and npm.

The Python workshop

Python is a popular higher-level programming language used for a lot of different purposes, including web development, automation, and data science. It’s easy to learn and work with, and it’s often recommended as a good first programming language to learn. A client library — called PyOTA — is available for IOTA. It covers all the basic functionalities you need to interact with the Tangle.

The Python workshop currently consists of examples of how to:

Send and receive transactions

Check your balance

Generate new addresses

Send IOTA coins

Send and receive multi-transaction messages

Utilize a real-time stream of incoming transactions using ZeroMQ

The Python Workshop can be cloned from the IOTA Community GitHub. It requires Python 3.5 or 3.6 installed on your system to run the examples.

Conclusion

We hope these workshops show you how easy it is to develop something that interacts with the Tangle.

As you might have noticed, these workshops are not part of the regular IOTA Foundation GitHub Organization. They are part of a separate Community Organization.

The current autonomy allows us to easily add community developers — who wish to contribute to the IOTA Ecosystem — to the organization. Someone, for example, who wants to develop a version of the workshop in another programming language or a tool that benefits others in the ecosystem.

We are always open to pull requests for additions or improvements to the existing workshops. We update and extend the workshops over time when new functionalities become available in the various client libraries.

If you wish to add a contribution, feel free to contact Dave de Fijter or Lewis Freiberg on Discord (you can find them in the IOTA Foundation section of the user list). They will add you to the organization.