Unless you are writing new features in Indy, the main repos you need to know about are:
- indy-node: contains the code to run an indy network
- indy-sdk: helps developers write client software that uses indy
Some of the other repos are going to be collapsed over time. indy-agent is the beginnings of reference agents in various languages.
The language used to write libindy is Rust. The interface exposed by libindy is C-callable, so even though it is written in Rust, it is just like a library written in C as far as how it is called, what data types it supports, etc. So C/C++ can consume libindy directly. There are wrappers for libindy, making it easy to write an indy client, for java (or any JVM lang), python, .net, node.js, Rust (for more native-like Rust usage), and objective-C. There is an experimental wrapper in Go. I heard a community member say they were writing a wrapper in PHP, too–but I don’t know where it is or what its status is.