{"id":14256819,"url":"https://github.com/axone-protocol/prolog","last_synced_at":"2026-03-03T10:00:55.521Z","repository":{"id":247288687,"uuid":"801627196","full_name":"axone-protocol/prolog","owner":"axone-protocol","description":"🧠 The Axone Prolog VM","archived":false,"fork":false,"pushed_at":"2026-02-12T19:35:38.000Z","size":2488,"stargazers_count":5,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-13T03:19:15.969Z","etag":null,"topics":["prolog","scripting-language","virtual-machine"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ichiban/prolog","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axone-protocol.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-16T15:43:08.000Z","updated_at":"2026-02-12T19:35:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"39a89693-e3c6-41c5-b008-28efade04a59","html_url":"https://github.com/axone-protocol/prolog","commit_stats":null,"previous_names":["axone-protocol/prolog"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/axone-protocol/prolog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axone-protocol%2Fprolog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axone-protocol%2Fprolog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axone-protocol%2Fprolog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axone-protocol%2Fprolog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axone-protocol","download_url":"https://codeload.github.com/axone-protocol/prolog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axone-protocol%2Fprolog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30040236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T06:58:30.252Z","status":"ssl_error","status_checked_at":"2026-03-03T06:58:15.329Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["prolog","scripting-language","virtual-machine"],"created_at":"2024-08-22T07:01:15.823Z","updated_at":"2026-03-03T10:00:55.512Z","avatar_url":"https://github.com/axone-protocol.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"[![axone github banner](https://raw.githubusercontent.com/axone-protocol/.github/main/profile/static/axone-banner.png)](https://axone.xyz)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://discord.gg/axone\"\u003e\u003cimg src=\"https://img.shields.io/badge/Discord-7289DA?style=for-the-badge\u0026logo=discord\u0026logoColor=white\" alt=\"Discord\" /\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://www.linkedin.com/company/axone-protocol/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" alt=\"LinkedIn\" /\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://twitter.com/axonexyz\"\u003e\u003cimg src=\"https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white\" alt=\"Twitter\" /\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://blog.axone.xyz\"\u003e\u003cimg src=\"https://img.shields.io/badge/Medium-12100E?style=for-the-badge\u0026logo=medium\u0026logoColor=white\" alt=\"Medium\" /\u003e\u003c/a\u003e \u0026nbsp;\n  \u003ca href=\"https://www.youtube.com/channel/UCiOfcTaUyv2Szv4OQIepIvg\"\u003e\u003cimg src=\"https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge\u0026logo=youtube\u0026logoColor=white\" alt=\"YouTube\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Axone Prolog Virtual Machine\n\n[![build](https://img.shields.io/github/actions/workflow/status/axone-protocol/prolog/build.yml?label=build\u0026style=for-the-badge\u0026logo=github)](https://github.com/axone-protocol/prolog/actions/workflows/build.yml)\n[![codecov](https://img.shields.io/codecov/c/github/axone-protocol/prolog?style=for-the-badge\u0026token=O3FJO5QDCA\u0026logo=codecov)](https://codecov.io/gh/axone-protocol/prolog)\n[![GoDoc](https://img.shields.io/badge/godoc-reference-5272B4.svg?style=for-the-badge\u0026logo=go)](https://pkg.go.dev/github.com/axone-protocol/prolog)\n[![Go Report Card](https://goreportcard.com/badge/github.com/axone-protocol/prolog?style=for-the-badge)](https://goreportcard.com/report/github.com/axone-protocol/prolog)\n[![conventional commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg?style=for-the-badge\u0026logo=conventionalcommits)](https://conventionalcommits.org)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge)](https://github.com/axone-protocol/.github/blob/main/CODE_OF_CONDUCT.md)\n[![license](https://img.shields.io/github/license/axone-protocol/prolog.svg?label=License\u0026style=for-the-badge)](https://opensource.org/license/mit)\n\n\u003e [!IMPORTANT]\n\u003e This repository is a _hard fork_ of [ichiban/prolog](https://github.com/ichiban/prolog), customized to meet the specific requirements of the [Axone protocol](https://github.com/axone-protocol). It is maintained independently for our use case, and upstream updates may not be regularly integrated.\n\u003e\n\u003e For the original, general-purpose Prolog implementation or to contribute to the broader community, please visit the [ichiban/prolog repository](https://github.com/ichiban/prolog).\n\n## What is this?\n\n`axone-protocol/prolog` is a Prolog virtual machine written in Go, designed to be embedded in blockchain environments.\nIt serves as the core of the [Axone protocol](https://axone.xyz) for decentralized, logic-based smart contracts.\n\nThis project is a fork of the [ichiban/prolog](https://github.com/ichiban/prolog) repository, striving to maintain\nISO standard compliance where feasible while adapting to the unique constraints of blockchain execution.\n\n## Deviations from the ISO Standard\n\nThe following customizations have been made to adapt the original `ichiban/prolog` implementation to the blockchain environment:\n\n- Capped variable allocation to limit the number of variables.\n- Replaced maps with ordered maps to ensure deterministic execution.\n- Implemented secure integer arithmetic for functors.\n- Integrated [cockroachdb/apd](https://github.com/cockroachdb/apd) for floating-point arithmetic.\n- Removed support for trigonometric functions (`sin`, `cos`, `tan`, `asin`, `acos`, `atan`).\n- Introduced VM hooks for enhanced Prolog execution control.\n- Added support for the `Dict` term.\n- Added support for `read_write` mode for bidirectional file I/O, enabling half-duplex transactional devices in the host's VFS.\n- `halt/0` and `halt/1` stop Prolog execution by signaling a VM halt (the host decides how to handle exit codes).\n- Added VM metering capability to track and limit resource consumption across multiple dimensions (instructions, unifications, list processing, term copying, arithmetic evaluation, and structural comparisons).\n\n## License\n\nDistributed under the MIT license. See `LICENSE` for more information.\n\n## Bug reports \u0026 feature requests\n\nIf you notice anything not behaving how you expected, if you would like to make a suggestion or would like\nto request a new feature, please open a [**new issue**](https://github.com/axone-protocol/axoned/issues/new/choose). We appreciate any help\nyou're willing to give!\n\n\u003e Don't hesitate to ask if you are having trouble setting up your project repository, creating your first branch or\n\u003e configuring your development environment. Mentors and maintainers are here to help!\n\n## You want to get involved? 😍\n\nSo you want to contribute? Great! ❤️ We appreciate any help you're willing to give. Don't hesitate to open issues and/or\nsubmit pull requests.\n\nWe believe that collaboration is key to the success of the Axone project. Join our Community discussions on the [Community space](https://github.com/orgs/axone-protocol/discussions) to:\n\n- Engage in conversations with peers and experts.\n- Share your insights and experiences with Axone.\n- Learn from others and expand your knowledge of the protocol.\n\nThe Community space serves as a hub for discussions, questions, and knowledge-sharing related to Axone.\nWe encourage you to actively participate and contribute to the growth of our community.\n\nPlease check out Axone health files:\n\n- [Contributing](https://github.com/axone-protocol/.github/blob/main/CONTRIBUTING.md)\n- [Code of conduct](https://github.com/axone-protocol/.github/blob/main/CODE_OF_CONDUCT.md)\n\n## Acknowledgements\n\nWe would like to thank the following projects for their inspiration and for providing the foundation for this project:\n\n- [ichiban](https://github.com/ichiban) for the original Prolog implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxone-protocol%2Fprolog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxone-protocol%2Fprolog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxone-protocol%2Fprolog/lists"}