{"id":18992097,"url":"https://github.com/jesperkha/fizz","last_synced_at":"2025-04-22T11:42:09.250Z","repository":{"id":57646951,"uuid":"422645871","full_name":"jesperkha/Fizz","owner":"jesperkha","description":"Interpreted programming language built with Go","archived":false,"fork":false,"pushed_at":"2022-04-23T00:30:10.000Z","size":1844,"stargazers_count":17,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-17T00:18:05.531Z","etag":null,"topics":["go","golang","interpreter","language","programming-language","scripting","tool"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jesperkha.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}},"created_at":"2021-10-29T16:36:52.000Z","updated_at":"2024-11-27T18:37:28.000Z","dependencies_parsed_at":"2022-09-19T07:01:11.974Z","dependency_job_id":null,"html_url":"https://github.com/jesperkha/Fizz","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesperkha%2FFizz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesperkha%2FFizz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesperkha%2FFizz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jesperkha%2FFizz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jesperkha","download_url":"https://codeload.github.com/jesperkha/Fizz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250236501,"owners_count":21397392,"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":["go","golang","interpreter","language","programming-language","scripting","tool"],"created_at":"2024-11-08T17:16:27.091Z","updated_at":"2025-04-22T11:42:09.205Z","avatar_url":"https://github.com/jesperkha.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\".github/logo.svg\" alt=\"Logo\" width=\"120\"\u003e\n\n  \u003ch3 align=\"center\"\u003eFizz, the programming language\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Interpreted dynamic programming language built with Go.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/jesperkha/Fizz/blob/main/docs/lang.md\"\u003e\u003cstrong\u003eDocumentation »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/jesperkha/Fizz/tree/main/examples\"\u003eExamples\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/jesperkha/Fizz/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"#installation\"\u003eDownload\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003cul\u003e\n  \u003cli\u003e\u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#running-a-program\"\u003eRunning a program\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#code-examples\"\u003eCode examples\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## About\n\nFizz is a dynamic and interpreted programming language built with Go. It is strongly typed and comes with very readable and accurate error messages. Fizz has most of the standard functionality that you would expect from modern programming languages. The library system also allows the user to implement their own features as Go functions and port them directly into Fizz. If you like this project, consider giving it a star 😉\n\n### Features\n\n- Variables, conditionals, and loops\n- Functions, arrays, and objects\n- File imports and libraries\n- Clean syntax and simple grammar\n\n\u003cbr\u003e\n\n## Installation\n\nPrebuilt binary of the [latest release (v1.1.0)](https://github.com/jesperkha/Fizz/releases/tag/v1.1.0).\n\nYou can also build from source. However, building from source from a non-release branch does not guarantee that everything works as expected as some things may be undergoing changes.\n\n1. Clone repo\n2. Run the `build.sh` file\n\n### Syntax highlighting\n\nFinally, there is also optional, but recommended, [syntax highlighting](https://github.com/jesperkha/fizz-extensions) extensions for both Visual Studio Code and micro.\n\n\u003cbr\u003e\n\n## Documentation\n\nYou can read the [full language documentation](./docs/lang.md) to learn about all of Fizz's syntax. It is also recommended to quickly skim over [the language grammar](./docs/grammar.md) to make sure you undestand the basics of how Fizz is structured (don't worry, it's _very_ similar to most modern programming languages).\n\nMake sure to check out [the command-line basics](./docs/cmd.md) too so you know how to run your code and also which configurations you can apply.\n\n\u003cbr\u003e\n\n## Running a program\n\n[Full documentation on command-line basics](./docs/cmd.md)\n\n### Terminal mode\n\nRunning the interpreter without giving a filename will run the terminal mode where you can run any valid Fizz code live. Errors are printed but the program is not terminated. Newlines are supported for blocks and the code will not be executed until the block is closed.\n\n### Run file\n\nRunning the interpreter and giving a filename simply runs the code in the file and halts if an error occurs. Fizz files must end with the `.fizz` suffix. Both of the following are valid:\n\n```console\n$ ./fizz myFile.fizz\n$ ./fizz myFile\n```\n\n\u003cbr\u003e\n\n## Code examples\n\nSome simple code examples written in Fizz. There are more and bigger examples in the `examples` directory. All of the features used here and many more are thoroughly documented in the [documentation page](./docs/lang.md).\n\n\u003cbr\u003e\n\nWrite to a file:\n\n```go\ninclude \"io\";\ninclude \"str\";\n\ndefine Person {\n  name, age\n}\n\nfunc writePerson(person) {\n  if person == nil : person.name == \"\" {\n    error \"Please enter a valid person\";\n  }\n\n  io.appendFile(\"names.txt\", str.format(person));\n}\n\njohn := Person(\"John\", 59);\nwritePerson(john);\n```\n\n\u003cbr\u003e\n\nFind max and min numbers in array:\n\n```go\ninclude \"str\";\n\narr := [5, 3, 7.5, 8, 2];\nmax := 0;\nmin := 999;\n\nrange n in arr {\n  if n \u003e max {\n    max = n;\n  }\n  if n \u003c min {\n    min = n;\n  }\n}\n\nprint \"Max: \" + str.toString(max);\nprint \"Min: \" + str.toString(min);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesperkha%2Ffizz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjesperkha%2Ffizz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjesperkha%2Ffizz/lists"}