Write computer programs in Kinyarwanda!
Getting Started . Why Kin? . VS Code support . Show us what you did!
Kin is a straightforward programming language created with the purpose of aiding Rwandans to write computer programs in their native language Kinyarwanda.
ℹ️ Contributors: Please see our ARCHITECTURE.md for a deep dive into Kin's architecture, design, and execution flow before contributing!
You can install Kin in one of two ways:
If you already have Node.js installed:
npm i -g @kin-lang/kinThen run Kin from any terminal:
kin --version
kin repl
kin run path/to/program.kinIf you are on Windows and do not have Node.js installed, download the pre-built executable from the latest GitHub Release:
- Go to Releases
- Download
kin-win-x64.exe - Place it somewhere convenient (for example
C:\kin\) - Optionally add that folder to your system
PATH - Run it from Command Prompt or PowerShell:
kin-win-x64.exe --version
kin-win-x64.exe repl
kin-win-x64.exe run path\to\program.kinYou can rename
kin-win-x64.exetokin.exefor shorter commands.
This executable is built with pkg and bundles the Kin runtime so you do not need Node.js separately.
Maintainers and contributors can build the Windows .exe locally:
npm install
npm run build:exeThe output is written to release/kin-win-x64.exe. To build for multiple platforms:
npm run build:exe:all- Goal: Kin's main objective is to make learning programming more accessible by using Kinyarwanda, the native language for Rwandans.
- Focus: It's a straightforward language, prioritizing easy of use over complex features. This makes it suitable for education purpose.
- Use Cases: While Kin is great for learning the fundamentals, it's suitability for large-scale software development isn't guaranteed.
-
This is implementation of linear search:
reka arr = [45, 56, 334, 78, 34, 78, 23, 90] reka i = 0 reka key = 23 subiramo_niba(i < KIN_URUTONDE.ingano(arr)) { niba (arr[i] == key) { tangaza_amakuru("Key ", key, " is on ", i + 1, " position") } i = i + 1 } -
Hello <name> !
reka name = injiza_amakuru("Enter your name: ") tangaza_amakuru("Hello ", name, "!") -
Executing system commands
sisitemu("sudo shutdown now")
Though Kin inherited it's syntax and structure from JavaScript, they're completely different when it comes to behavior. Some notable Kin's syntax rules are:
- Semicolon:
- A semicolon is required when you declare a variable but you don't assign a value to it.
reka x; # This will work - A semicolon is required when a function returns but there's not expression to return.
porogaramu_ntoya main() { tanga; # This will work }In General a semicolon is used to tell Kin that there's an ommited statement.
- A semicolon is required when you declare a variable but you don't assign a value to it.
- White spaces:
- Kin ignores white spaces, that's why multiple lines can be written at the same line ... these codes are equivalens
reka x = 5 reka x=5
- Kin ignores white spaces, that's why multiple lines can be written at the same line ... these codes are equivalens
-
Multiple statements can be written on the same line.
reka name = injiza_amakuru("Enter your name: ") tangaza_amakuru("Hello ", name, "!") -
Nested statements are also supported.
tangaza_amakuru("Hello ", injiza_amakuru("Enter your name: "), "!")
We still have a long way to go with Kin, we're calling for your contributions! Contributions are welcomed, refer to Contiributing.md for futher info.
This language is maintained by @pacifiquem.
This project is under MIT License.
PACIFIQUE Murangwa - Author