{"id":13610221,"url":"https://github.com/hook-lang/hook","last_synced_at":"2025-04-12T22:33:13.746Z","repository":{"id":39893140,"uuid":"380045297","full_name":"hook-lang/hook","owner":"hook-lang","description":"The Hook Programming Language","archived":false,"fork":false,"pushed_at":"2025-01-11T16:50:06.000Z","size":3722,"stargazers_count":112,"open_issues_count":0,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-11T04:30:29.417Z","etag":null,"topics":["bytecode","c-style","dynamically-typed","interpreter","mutable-value-semantics","reference-counting","scripting-language","stack-based","virtual-machine"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hook-lang.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["fabiosvm"]}},"created_at":"2021-06-24T20:40:14.000Z","updated_at":"2025-02-09T14:25:29.000Z","dependencies_parsed_at":"2024-11-07T16:36:56.666Z","dependency_job_id":"8f37c1f0-d4ea-41db-a9b6-fefedfd6388d","html_url":"https://github.com/hook-lang/hook","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hook-lang%2Fhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hook-lang%2Fhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hook-lang%2Fhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hook-lang%2Fhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hook-lang","download_url":"https://codeload.github.com/hook-lang/hook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248641678,"owners_count":21138248,"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","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":["bytecode","c-style","dynamically-typed","interpreter","mutable-value-semantics","reference-counting","scripting-language","stack-based","virtual-machine"],"created_at":"2024-08-01T19:01:42.606Z","updated_at":"2025-04-12T22:33:13.740Z","avatar_url":"https://github.com/hook-lang.png","language":"C","readme":"\n[![Ubuntu](https://github.com/hook-lang/hook/actions/workflows/ubuntu-build.yml/badge.svg)](https://github.com/hook-lang/hook/actions/workflows/ubuntu-build.yml)\n[![macOS](https://github.com/hook-lang/hook/actions/workflows/macos-build.yml/badge.svg)](https://github.com/hook-lang/hook/actions/workflows/macos-build.yml)\n[![Windows](https://github.com/hook-lang/hook/actions/workflows/windows-build.yml/badge.svg)](https://github.com/hook-lang/hook/actions/workflows/windows-build.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/b58fa787c8cc480091a8e976164ee203)](https://app.codacy.com/gh/hook-lang/hook/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![codecov](https://codecov.io/gh/hook-lang/hook/graph/badge.svg?token=oRSpRBTqp8)](https://codecov.io/gh/hook-lang/hook)\n\n# The Hook Programming Language\n\nHook is a simple, cross-platform, dynamically typed scripting language that utilizes a mutable value semantics approach. It was developed from scratch using C and employs clear and simple techniques such as recursive descent parsing, stack-based virtual machine, and reference counting.\n\n\u003e **Note**: Hook is currently in the early stages of development and should not be used in production environments at this time.\n\n## What does it look like?\n\nHook features a modern syntax similar to C.\n\n```rust\nfn factorial(n) {\n  if (n == 0)\n    return 1;\n  return n * factorial(n - 1);\n}\n```\n\n## Features\n\nHook offers the following key features:\n\n* Imperative and functional programming paradigms\n* Cross-platform compatibility\n* Dynamic typing\n* Mutable value semantics approach\n* Familiar C-like syntax\n* Support for value-captured closures\n\n## Installing\n\nThe following command can be used to install Hook on Linux (x64) and macOS (x64, arm64) systems:\n\n```\ncurl -sSL https://raw.githubusercontent.com/hook-lang/hook/main/scripts/install.sh | sh\n```\n\nFor Windows (x64) users, open a terminal and use the following commands:\n\n```\ncd %tmp%\ncurl -sSLO https://raw.githubusercontent.com/hook-lang/hook/main/scripts/install.bat\ninstall\n```\n\n### Installing with Homebrew\n\nIf you're a macOS user, you can also install Hook using [Homebrew](https://brew.sh):\n\n```\nbrew tap hook-lang/hook\nbrew install hook\n```\n\n\u003e **Note**: Follow the instructions provided by Homebrew to add the `HOOK_HOME` environment variable to your system.\n\n### Building from the source code\n\nIf you prefer, you can also build Hook locally by following the instructions provided in [BUILDING.md](BUILDING.md).\n\n## Hello, world!\n\nYou can run the classic `Hello, World!` program directly from the terminal by using the following command:\n\n```\nhook -e 'println(\"Hello, world!\");'\n```\n\n## Documentation\n\nUnfortunately, as the language undergoes constant breaking changes, it's impractical to have complete documentation. However, we have some text files and examples that can help:\n\n* [docs/grammar.md](docs/grammar.md)\n* [docs/built-in.md](docs/built-in.md)\n* [docs/core-modules.md](docs/core-modules.md)\n* [examples](examples)\n\nAdditionally, we have a cheatsheet that can be accessed at: [https://cheatsheets.zip/hook](https://cheatsheets.zip/hook)\n\n## Play with Hook online\n\nGet hands-on with Hook by visiting the [Hook Playground](https://hook-lang.github.io/hook-playground). You can easily write and run Hook code directly from your browser, whether it be from the provided examples or the code you've been itching to try.\n\n## Editor Support\n\nHook offers an extension for the popular code editor, Visual Studio Code. This extension provides features such as syntax highlighting, code completion, and code snippets, making your development experience more efficient. The extension can be easily installed from the  [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=fabiosvm.hook).\n\n## Contributing\n\nWe welcome contributions to our project! Please refer to the guidelines in our [CONTRIBUTING](CONTRIBUTING.md) file to learn how you can help us improve our project. Thank you for your interest in contributing!\n\n## License\n\nHook is licensed under the [MIT](https://choosealicense.com/licenses/mit) license. For more information, please refer to the [LICENSE](LICENSE) file.\n","funding_links":["https://github.com/sponsors/fabiosvm"],"categories":["Uncategorized","Other"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhook-lang%2Fhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhook-lang%2Fhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhook-lang%2Fhook/lists"}