{"id":13732228,"url":"https://github.com/kitlang/kit","last_synced_at":"2025-04-12T19:46:18.825Z","repository":{"id":33046140,"uuid":"143478195","full_name":"kitlang/kit","owner":"kitlang","description":"Kit: a magical, high performance programming language, designed for game development.","archived":false,"fork":false,"pushed_at":"2021-08-14T01:21:10.000Z","size":1764,"stargazers_count":1024,"open_issues_count":20,"forks_count":30,"subscribers_count":40,"default_branch":"dev","last_synced_at":"2025-04-03T22:11:10.561Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.kitlang.org","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitlang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-RUNTIME.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-03T22:22:58.000Z","updated_at":"2025-04-01T07:45:01.000Z","dependencies_parsed_at":"2022-07-16T05:00:37.215Z","dependency_job_id":null,"html_url":"https://github.com/kitlang/kit","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitlang%2Fkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitlang%2Fkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitlang%2Fkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitlang%2Fkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitlang","download_url":"https://codeload.github.com/kitlang/kit/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625497,"owners_count":21135513,"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":[],"created_at":"2024-08-03T02:01:49.819Z","updated_at":"2025-04-12T19:46:18.800Z","avatar_url":"https://github.com/kitlang.png","language":"Haskell","readme":"[![Build Status](https://img.shields.io/travis/kitlang/kit/master.svg?style=flat)](https://travis-ci.org/kitlang/kit)\n[![License: LGPL v3](https://img.shields.io/badge/license-LGPL%20v3-202020.svg)](https://www.gnu.org/licenses/lgpl-3.0)\n[![Discord Chat](https://img.shields.io/discord/531195968129990657.svg)](https://discord.gg/3va8Us9)\n[![roadmap on_trello](https://img.shields.io/badge/roadmap-on%20trello-0079bf.svg)](https://trello.com/b/Bn9H0fzk/kit)\n[![Website URL: https://www.kitlang.org](https://img.shields.io/badge/web-kitlang.org-3fa5bf.svg)](https://www.kitlang.org)\n\n![Kit logo](https://raw.githubusercontent.com/kitlang/kit/master/assets/logo-128.png)\n\n```ascii\n                       ,  ,\n  _,-=._              /|_/|\n  `-.}   `=._,.-=-._.,  @ @._,\n     `._ _,-.   )      _,.-'\n        `    G.Q-^^u`u'\n\n  oooo    oooo   o8o      ,\n  `888   .8P'    `V'    ,o8\n   888  d8'     oooo  .o888oo\n   88888[       `888    888\n   888`88b.      888    888\n   888  `88b.    888    888 ,\n  o888o  o888o  o888o   '888'\n```\n\n[**Kit**](https://www.kitlang.org) is a programming language designed for creating concise, high performance cross-platform applications. Kit compiles to C, so it's highly portable; it can be used in addition to or as an alternative to C, and was designed with game development in mind.\n\nWhy you should use Kit in place of:\n\n| C/C++ | a higher level language |\n| --- | --- |\n| Modern language features: type inference, algebraic data types, pattern matching, explicit function inlining, automatic pointer dereferencing, generics, implicits. | Full control over performance: pointers, manual memory management, no GC (unless you introduce it yourself, which is easy!) |\n| A more expressive type system, including traits for polymorphism, and abstract types, which provide custom compile-time behavioral and type checking semantics to existing types with no runtime cost. | Metaprogramming via a typed term rewriting system; use rules to transform arbitrary expressions at compile time based on their type information. Create your own interface or DSL. |\n| A sane, easy to use build system. Kit features modules, imports, and standard package structure, plus a simple but powerful build tool: manage your project via a simple YAML configuration file and `kit build`, `kit test`, or `kit run`. (coming soon...) | Take advantage of existing C libraries without any wrappers; just include the header and directly use types/functions/variables. |\n\n```kit\nfunction main() {\n    var s: CString = \"Hello from Kit!\";\n    printf(\"%s\\n\", s);\n}\n```\n\n**[See more code examples here](https://www.kitlang.org/examples.html)**\n\n*Kit is pre-alpha and not all features are fully implemented; see the [roadmap on Trello](https://trello.com/b/Bn9H0fzk/kit).*\n\nLicense\n-------\n\nThe Kit compiler is licensed under the GNU Lesser General Public License; see the accompanying [LICENSE.md](https://github.com/kitlang/kit/blob/master/LICENSE.md) file. This applies to modifications to the compiler source itself; any code you write and compile with Kit is yours to license however you choose.\n\nThe Kit standard library (.kit files contained in this repo) is released under the [MIT license](https://github.com/kitlang/kit/blob/master/LICENSE-RUNTIME.md).\n\nDesign goals and philosophy\n---------------------------\n\n- Magic and abstracting away complexity are good! Developers should write the most concise and declarative version of their code, and use syntax transformations to convert it into what a performance-conscious developer would've written by hand.\n\n- Expose the necessary low-level details to write high performance code, and make it easy to abstract them away without entirely giving up control.\n\n- Kit provides more compile-time safety than C, but never chooses safety at the expense of ergonomics.\n\n\nBuilding from source\n--------------------\n\nThe Kit compiler, `kitc`, is written in Haskell. Building the compiler requires GHC; the easiest path is to install [Stack](https://docs.haskellstack.org/en/stable/README/) and run:\n\n    stack build\n\nThis will install all other dependencies locally, including a local GHC binary, and build the compiler.\n\nTo run the compiler unit tests:\n\n    stack test\n\nTo install:\n\n    stack install\n\nThis will copy the `kitc` binary to Stack's binary install directory (~/.local/bin on Linux); make sure this directory is part of your executable paths.\n\nYou'll also need to set two environment variables:\n- KIT_STD_PATH, pointing to the `std` directory in the repo\n- KIT_TOOLCHAIN_PATH, pointing to the `toolchains` directory in the repo\n\n### Windows setup\n\n- Kit is currently known to work with mingw64; anything else is unsupported at this time.\n\nInstall from package\n--------------------\n\n### Windows\n\nKit provides a Scoop package. Follow the instructions at [scoop.sh](https://scoop.sh/) to install scoop, then run `scoop install 'https://raw.githubusercontent.com/kitlang/kit/dev/.packages/scoop/kitlang-prerelease.json'`\n\n### macOS\n\n* Download one of the macOS packages from https://bintray.com/kitlang/kitlang-macos/kitlang/0.1.0#\n\n* Install the package (NOTE: the installer will complain about 'unidentified developer', have to bypass in System Preferences/Security \u0026 Privacy.)\n\n### Debian/Ubuntu\n\n* Setup Bintray's APT key:\n\n(Debian might need to install dirmngr first - `sudo apt install dirmngr`, and the HTTPS transport for apt - `sudo apt install apt-transport-https`)\n\n```sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 ```\n\n* Using the command line, add the following to your /etc/apt/sources.list system config file:\n\nFor prereleases:\n\n```echo \"deb https://dl.bintray.com/kitlang/kitlang-prerelease-ubuntu bionic universe\" | sudo tee -a /etc/apt/sources.list.d/kitlang-prerelease.list```\n\nFor stable releases:\n\n```echo \"deb https://dl.bintray.com/kitlang/kitlang-stable-ubuntu bionic universe\" | sudo tee -a /etc/apt/sources.list.d/kitlang-stable.list```\n\nOr, add the repository URLs using the \"Software Sources\" admin UI:\n\n```deb https://dl.bintray.com/kitlang/kitlang-prerelease bionic universe```\n\n* Update apt and install:\n\n```sudo apt update```\n\n```sudo apt install kitlang```\n\n### RedHat/CentOS\n\n* Run the following to get a generated .repo file:\n\nFor prereleases:\n\n```wget https://bintray.com/kitlang/kitlang-prerelease-redhat/rpm -O bintray-kitlang-prerelease-redhat.repo```\n\nFor stable releases:\n\n```wget https://bintray.com/kitlang/kitlang-stable-redhat/rpm -O bintray-kitlang-stable-redhat.repo```\n\n\\- or -\n\n* Copy this text into a 'bintray-kitlang-prerelease-redhat.repo' file on your Linux machine:\n\n```\n#bintraybintray-kitplummer-kitlang-prerelease-redhat - packages by kitplummer from Bintray\n[bintraybintray-kitplummer-kitlang-prerelease-redhat]\nname=bintray-kitplummer-kitlang-prerelease-redhat\nbaseurl=https://dl.bintray.com/kitlang/kitlang-prerelease-redhat\ngpgcheck=0\nrepo_gpgcheck=0\nenabled=1\n```\n\n* Then, move the config\n\n```sudo mv bintray-kitlang-rpm.repo /etc/yum.repos.d/```\n\n* Update yum with:\n\n```sudo yum update```\n\n* Install with yum:\n\n```sudo yum install kitlang```\n\nHello world\n-----------\n\nAfter building/installing `kitc`:\n\n- Create a a new file, \"helloworld.kit\", and copy the following into it:\n\n```kit\nfunction main() {\n    printf(\"%s\\n\", \"Hello from Kit!\");\n}\n```\n\n- Run `kitc helloworld.kit --run` to compile and run your program\n\nCopyright\n---------\n\nCopyright (C) 2018 Ben Morris. (See the [LICENSE](https://github.com/kitlang/kit/blob/master/LICENSE.md).)\n","funding_links":[],"categories":["Haskell","Scripting"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitlang%2Fkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitlang%2Fkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitlang%2Fkit/lists"}