{"id":21528514,"url":"https://github.com/fibercrypto/libskyfiber","last_synced_at":"2025-10-05T00:52:35.957Z","repository":{"id":57615622,"uuid":"218871829","full_name":"fibercrypto/libskyfiber","owner":"fibercrypto","description":null,"archived":false,"fork":false,"pushed_at":"2021-01-14T19:51:30.000Z","size":95746,"stargazers_count":0,"open_issues_count":13,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-17T18:52:05.659Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fibercrypto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-31T22:29:26.000Z","updated_at":"2023-10-10T10:21:54.000Z","dependencies_parsed_at":"2022-09-17T11:02:11.117Z","dependency_job_id":null,"html_url":"https://github.com/fibercrypto/libskyfiber","commit_stats":null,"previous_names":["fibercrypto/libskycoin"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/fibercrypto/libskyfiber","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Flibskyfiber","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Flibskyfiber/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Flibskyfiber/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Flibskyfiber/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fibercrypto","download_url":"https://codeload.github.com/fibercrypto/libskyfiber/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fibercrypto%2Flibskyfiber/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278395915,"owners_count":25979691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T01:53:31.496Z","updated_at":"2025-10-05T00:52:35.913Z","avatar_url":"https://github.com/fibercrypto.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![](https://repository-images.githubusercontent.com/165332391/de95dc00-7cec-11e9-8fcb-d42fbd8e3577)\n\n# Skycoin C library\n\n[![Build Status](https://travis-ci.org/skycoin/libskycoin.svg)](https://travis-ci.org/skycoin/libskycoin)\n\nSkycoin C library (a.k.a `libskycoin`) exports the Skycoin API to DApps using the C programming language.\nIt is also the foundation to build client libraries for other programming languages.\n\n## Links\n\n* [skycoin.net](https://www.skycoin.net)\n* [Skycoin Blog](https://www.skycoin.net/blog)\n* [Skycoin Docs](https://www.skycoin.net/docs)\n* [Skycoin Blockchain Explorer](https://explorer.skycoin.net)\n* [Skycoin Development Telegram Channel](https://t.me/skycoindev)\n* [Skycoin Github Wiki](https://github.com/skycoin/skycoin/wiki)\n\n## Subprojects\n\nThe Skycoin C library is made of the following components\n\n- `lib/cgo`     : C wrappers for the Skycoin core API\n- `lib/swig`    : SWIG interfaces to generate wrappers around the Skycoin core API for other programming languages\n- `lib/swagger` : Swagger specifications for generating REST API clients\n- `lib/curl`    : C REST client for the Skycoin HTTP API. Generated by [openapi-generator](https://github.com/OpenAPITools/openapi-generator). Powered by [libcurl](https://curl.haxx.se/libcurl/c/).\n\nConsult respective `README` files for further details.\n\n\u003c!-- MarkdownTOC levels=\"1,2,3,4,5\" autolink=\"true\" bracket=\"round\" --\u003e\n- [Make rules](#make-rules)\n- [Development setup](#development-setup)\n  - [Running tests](#running-tests)\n  - [Releases](#releases)\n    - [Update the version](#update-the-version)\n    - [Pre-release testing](#pre-release-testing)\n    - [Creating release builds](#creating-release-builds)\n\u003c!-- /MarkdownTOC --\u003e\n\n## Make Rules\n\nAll these make rules require skycoin to be a git submodule of libskycoin\n\n|Target                        |Help|\n| :-------------               | :----------: | \n|build-libc-static             |Build libskycoin C static library|\n|build-libc-shared             |Build libskycoin C shared library|\n|build                         |Build all C libraries\n|build-libc                    |Build libskycoin C client libraries|\n|build-skyapi                  |Build skyapi(libcurl based) library|\n|test                          |Run all test for libskycoin|\n|test-libc                     |Run tests for libskycoin C client library|\n|test-skyapi                   |Run test for skyapi(libcurl based) library|\n|docs                          |Generate documentation for all libraries|\n|docs-libc                     |Generate libskycoin documentation|\n|docs-skyapi                   |Generate SkyApi (libcurl) documentation|\n|lint                          |Run linters. Use make install-linters first.|\n|check                         |Run tests and linters|\n|install-deps                  |Install deps for libc and skyapi|\n|install-deps-libc             |Install deps for libc|\n|install-deps-skyapi           |Install skyapi(libcurl based) library.|  \n|install-linters               |Install linters|\n|format                        |Formats the code. Must have goimports installed (use make install-linters).|\n|clean                         |Clean all files generated by libraries(libcurl based and libc)|\n|clean-libc                    |Clean files generated by libc|\n|clean-skyapi                  |Clean files generated by skyapi| \n\n## Development setup\n\n### Running tests\n\n```sh\n$ make test-libc\n```\n\n### Releases\n\n#### Update the version\n\n0. If the `master` branch has commits that are not in `develop` (e.g. due to a hotfix applied to `master`), merge `master` into `develop` (and fix any build or test failures)\n0. Switch to a new release branch named `release-X.Y.Z` for preparing the release.\n0. If the release process needs modifications, edit these steps before moving forward\n0. Ensure that the submodule at `vendor/github.com/skycoin/skycoin` is in sync with respect to the corresponding tag in https://github.com/skycoin/skycoin repository.\n0. Update `CHANGELOG.md`: move the \"unreleased\" changes to the version and add the date.\n0. Run `make docs` to regenerate documentation for all libraries and ensure they ar up-to-date.\n0. Follow the steps in [pre-release testing](#pre-release-testing)\n0. Make a PR merging the release branch into `master`\n0. Review the PR and merge it\n0. Tag the `master` branch with the version number. Version tags start with `v`, e.g. `v0.20.0`. Sign the tag. If you have your GPG key in github, creating a release on the Github website will automatically tag the release. It can be tagged from the command line with `git tag -as v0.20.0 $COMMIT_ID`, but Github will not recognize it as a \"release\".\n0. Release builds are created and uploaded by travis. To do it manually, checkout the master branch and make release.\n0. Merge changes in `master` back into `develop` branch to start working towards next stable version.\n\n#### Pre-release testing\n\nPerform these actions before releasing:\n\n```sh\nmake check\n```\n#### Release signing\n\nReleases are signed with this PGP key:\n\n`0x5801631BD27C7874`\n\nThe fingerprint for this key is:\n\n```\npub   ed25519 2017-09-01 [SC] [expires: 2023-03-18]\n      10A7 22B7 6F2F FE7B D238  0222 5801 631B D27C 7874\nuid                      GZ-C SKYCOIN \u003ctoken@protonmail.com\u003e\nsub   cv25519 2017-09-01 [E] [expires: 2023-03-18]\n```\n\nKeybase.io account: https://keybase.io/gzc \n\n##### Alternative signing keys:\n\nKeybase.io account: https://keybase.io/olemis\n\nThe fingerprint for this key is:\n\n```\npub   rsa4096 2019-01-17 [SC] [expires: 2024-01-16]\nuid           Olemis Lang \u003colemis@simelo.tech\u003e\nsub   rsa4096 2019-01-17 [E] [expires: 2024-01-16]\n```\n\nFollow the [Tor Project's instructions for verifying signatures](https://www.torproject.org/docs/verifying-signatures.html.en).\n\nIf you can't or don't want to import the keys from a keyserver, the signing key is available in the repo: [gz-c.asc](gz-c.asc).\n\nReleases and their signatures can be found on the [releases page](https://github.com/skycoin/skycoin/releases).\n\nInstructions for generating a PGP key, publishing it, signing the tags and binaries:\nhttps://gist.github.com/gz-c/de3f9c43343b2f1a27c640fe529b067c\n\n## Development\n\nWe have two branches: `master` and `develop`.\n\n- `develop` is the default branch and will always have the latest code.\n  The submodule at `gopath/src/github.com/skycoin/skycoin` has to be\n  in sync with `skycoin/skycoin` `develop` branch.\n- `master` will always be equal to the current stable release on the website, and should correspond with the latest release tag.\n  The submodule at `gopath/src/github.com/skycoin/skycoin` has to be\n  in sync with `skycoin/skycoin` `master` branch.\n\nSeparate stable development branches will be created to work on releases for supporting the\nmost recent stable version of Skycoin. The name of these branches should be the Skycoin\nmajor and minor version numbers followed by `dev` suffix e.g. `0.25dev`.\nThese branches may be forked out of either `master` or `develop` branches, and \nthe submodule at `gopath/src/github.com/skycoin/skycoin` has to be\nin sync with the corresponding tag of `skycoin/skycoin` official repository.\n\nStable development branches are created most of the time for the following reasons:\n\n- A Skycoin release increasing [patch version number](https://semver.org/).\n- Enhanced support and bug fixes for a version of the library compiled against an\n  stable version of Skycoin\n- Backporting useful features added in `develop`.\n\n### General development guidelines\n\nThe following rules are enforced\n\n- Contributions must comply to the development guidelines documented in the [Skycoin wiki](https://github.com/skycoin/skycoin/wiki).\n- C / C++ code must comply to the [Bitcoin C coding style](https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#coding-style-c) (enforced by `clang-format`).\n\n### SkyApi libcurl client for Skycoin REST API\n\nThis wrapper is auto-generated by `openapi-generator` directly from [Skycoin REST API code](https://github.com/skycoin/skycoin/tree/master/src/api).\n\nFor further instructions see [Autogenerated documentation](./lib/curl/README.md).\n\n### Doxygen comment syntax\n\nIf you want to continue with `the doxygen way`(we recommend it) of coding and document functions, structs, and functions, you should follow the specifications found in the [Doxygen official site](http://www.doxygen.nl/manual/docblocks.html).\n\nAn example of documentation using `doxygen` is the next:\n\n```c\n/**\n * Addresses of Bitcoin accounts\n */\ntypedef struct {\n    GoUint8_ Version;      ///\u003c Address version identifier.\n                           ///\u003c Used to differentiate testnet\n                           ///\u003c vs mainnet addresses, for instance.\n    cipher__Ripemd160 Key; ///\u003c Address hash identifier.\n} cipher__BitcoinAddress;\n```\nThis code example can be found at `include/cipher.bitcoin.go.h`.\n\nInside `/* */`  we found struct documentation, meanwhile `//\u003c` symbol is used to describe fields of the struct.\n\nAfter that, run `make docs` for a new docs generation. You can found the api documentation at `docs/libc` folder.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffibercrypto%2Flibskyfiber","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffibercrypto%2Flibskyfiber","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffibercrypto%2Flibskyfiber/lists"}