Skip to main content

A Yoruba-first programming language

Project description

OduduwaLang Logo

OduduwaLang

A powerful, open-source programming language that allows you to write real software natively in Yoruba. Oduduwa stands as a bridge between profound cultural heritage and modern software engineering.

It compiles directly to Python, meaning it has the full power of the Python ecosystem while maintaining Yoruba syntax and grammar.


🚀 Getting Started (How to Install)

To use OduduwaLang on any computer, follow these simple steps:

1. Install Python

OduduwaLang requires Python to run. If you don't have Python installed, download it from python.org.

2. Install OduduwaLang

Open your terminal (Command Prompt, PowerShell, or macOS Terminal) and type the following command to download OduduwaLang from the global PyPI registry:

pip install oduduwalang

(If you are on Mac/Linux, you may need to use pip3 install oduduwalang instead).

3. Install the VS Code Extension

To get beautiful syntax highlighting and the official Ife Bronze Head icon for your .odu files:

  1. Open Visual Studio Code.
  2. Go to the Extensions tab (or press Ctrl+Shift+X).
  3. Search for OduduwaLang.
  4. Click Install.

💻 Writing Your First Code

Once installed, create a new file named hello.odu and open it in VS Code.

Type the following Yoruba code to print a message to the screen:

tejade("E kaaro Aye! (Hello World)")

Running the Code

Open your terminal inside the folder where you saved hello.odu and run:

python -m oduduwa.cli sise hello.odu

(Or, if your Python Scripts folder is added to your Windows PATH, you can simply type: oduduwa run hello.odu)


⚡ The Interactive REPL

Want to just test some Yoruba code quickly without creating a file? You can open the Oduduwa Interactive Shell!

Just open your terminal and type:

python -m oduduwa.cli

You will see the interactive prompt where you can type code line-by-line:

=======================================
 OduduwaLang REPL v0.2.2
 Tẹ 'iranlowo' (tabi 'help') fun itọsọna.
 Tẹ 'jade()' lati kuro (Type 'jade()' to exit)
=======================================
odu> tejade("Bawo ni?")
Bawo ni?

📚 Language Features

OduduwaLang supports variables, conditionals, loops, nested dictionaries, lists, object-oriented programming, and standard library modules!

User Input, Variables & Conditionals

oruko = gba_wole("Kini oruko re? ")
tejade(f"E kaabo, {oruko}!")

odun = 20
ti odun < 13:
    tejade("O je omode.")
tabi odun < 20:
    tejade("O je odo.")
bibeeko:
    tejade("O je agbalagba.")

OOP (Classes) & Functions

egbe Aja:
    ise __ibere__(ara, oruko):
        ara.oruko = oruko
        
    ise gbo(ara):
        tejade(ara.oruko, "wipe: Gboyen gbo!")

aja_mi = Aja("Okin")
aja_mi.gbo()

Error Handling

gbiyanju:
    abajade = 10 / 0
mu_asise:
    tejade("A ti mu asise! O ko le pin pelu odo.")
ni_ipari:
    tejade("Eyi ma sise ni gbogbo igba.")

Imports & Standard Library

mu_wole isiro
mu_wole akoko
mu_wole onka

tejade("Apapo [1, 2, 3] je:", isiro.apapo([1, 2, 3]))
tejade("Asiko yii ni:", akoko.asiko_kika())
tejade("100 l'ede Yoruba ni:", onka.yipada(100))

🛠️ CLI Tooling

OduduwaLang comes with built-in development tools to keep your code clean:

  • Format: oduduwa se_eto app.odu (Perfectly indents your code)
  • Lint: oduduwa yewo app.odu (Scans for syntax errors)
  • Build: oduduwa kiko app.odu -o app.py (Creates a standalone Python script)
  • Run: oduduwa sise app.odu (Executes your script)
  • REPL: oduduwa soro (Enters the interactive shell)

📄 Documentation

For the full technical details on how to write OduduwaLang, view our guides:

🤝 Contributing

This is an open-source project. We welcome Yoruba linguists and software engineers to join us in building this legacy. Feel free to open an issue or submit a Pull Request on our GitHub Repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oduduwalang-0.2.2.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oduduwalang-0.2.2-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file oduduwalang-0.2.2.tar.gz.

File metadata

  • Download URL: oduduwalang-0.2.2.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for oduduwalang-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2a4280c452bc7934f1de91517fe9621ef99218df725155cf832ee2d7ab728dcc
MD5 f46ed7da33fcf4b8fdb1c634e8fb3f1f
BLAKE2b-256 bdb2db1f7750ee02746917d39e0d82dc664934883d29574e40475fbb07ffa575

See more details on using hashes here.

File details

Details for the file oduduwalang-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: oduduwalang-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for oduduwalang-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1807a2da157fc837af0b68786b8e45a0df5b3133dfca08181f7e571d0872a982
MD5 5a82d9fb054b9e3b550a19654d2cb1fc
BLAKE2b-256 efde6a04a4ecff4f3ef5389c5c7d13668dfe2d77cbed5bd90c72be5f85f2144e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page