Participation in the Lightning Network requires running an implementation of a Lightning Network daemon software. This software launches and runs a unique node that allows communication with other peers on the network. Multiple versions, or implementations, have been created by different entities, just as multiple implementations of core Bitcoin software exist. Different implementations maintain interoperability by conforming to BOLT (Basis of Lightning Technology) standards.
lnd, a BOLT-compliant Lightning node by Lightning Labs written in Golang https://github.com/lightningnetwork/lnd
c-lightning, a BOLT-compliant Lightning node by Blockstream written in C https://github.com/ElementsProject/lightning
Eclair, a BOLT-compliant Lightning node by ACINQ written in Scala https://github.com/ACINQ/eclair
Ptarmigan, a BOLT-compliant Lightning node by written in C++ https://github.com/nayutaco/ptarmigan
LIT, a non-BOLT-compliant Lightning node by MIT-DCI written in Go https://github.com/mit-dci/lit Native multichain support and some other novel features developed by Tadge Dryja
[1] https://github.com/lightningnetwork/lnd
[2] https://github.com/ElementsProject/lightning
[3] https://github.com/ACINQ/eclair