This PR: - adds all the guides (in markdown format) that is published at https://docs.corelightning.org/docs - adds a github workflow to sync any future changes made to files inside the guides folder - does not include API reference (json-rpc commands). Those will be handled in a separate PR since they're used as manpages and will require a different github workflow Note that the guides do not exactly map to their related files in doc/, since we reorganized the overall documentation structure on readme for better readability and developer experience. For example, doc/FUZZING.md and doc/HACKING.md#Testing are merged into testing.md in the new docs. As on the creation date of this PR, content from each of the legacy documents has been synced with the new docs. Until this PR gets merged, I will continue to push any updates made to the legacy documents into the new docs. If this looks reasonable, I will add a separate PR to clean up the legacy documents from doc/ (or mark them deprecated) to avoid redundant upkeep and maintenance. Changelog-None
2.3 KiB
title, slug, hidden, createdAt, updatedAt
| title | slug | hidden | createdAt | updatedAt |
|---|---|---|---|---|
| Tutorials | additional-resources | false | 2023-02-03T08:33:51.998Z | 2023-02-08T09:36:57.988Z |
Writing a plugin in Python
Check out a step-by-step recipe for building a simple helloworld.py example plugin based on pyln-client.
[block:tutorial-tile] { "backgroundColor": "#dfb316", "emoji": "🦉", "id": "63dbd6993ef79b07b8f399be", "link": "https://docs.corelightning.org/v1.0/recipes/write-a-hello-world-plugin-in-python", "slug": "write-a-hello-world-plugin-in-python", "title": "Write a hello-world plugin in Python" } [/block]
You can also follow along the video below where Blockstream Engineer Rusty Russell walks you all the way from getting started with Core Lightning to building a plugin in Python.
[block:embed] { "html": "<iframe class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Ffab4P3BIZxk%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dfab4P3BIZxk&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Ffab4P3BIZxk%2Fhqdefault.jpg&key=7788cb384c9f4d5dbbdbeffd9fe4b92f&type=text%2Fhtml&schema=youtube" width="854" height="480" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true">", "url": "https://www.youtube.com/watch?v=fab4P3BIZxk", "title": "Rusty Russell | Getting Started with c-lightning | July 2019", "favicon": "https://www.google.com/favicon.ico", "image": "https://i.ytimg.com/vi/fab4P3BIZxk/hqdefault.jpg", "provider": "youtube.com", "href": "https://www.youtube.com/watch?v=fab4P3BIZxk", "typeOfEmbed": "youtube" } [/block]
Finally, lightningd's own internal tests can be a useful (and most reliable) resource.
Writing a plugin in Rust
cln-plugin is a library that facilitates the creation of plugins in Rust, with async/await support, for low-footprint plugins.
Community built plugins
Check out this repository that has a collection of actively maintained plugins as well as plugin libraries (in your favourite language) built by the community.