mojo

mojo

The Mojo Programming Language

Stars: 23752

Visit
 screenshot

Mojo is a new programming language that combines Python syntax and ecosystem with systems programming and metaprogramming features. It aims to bridge the gap between research and production, designed to be the best way to extend Python over time. The repository includes source code for Mojo examples, documentation hosted at modular.com, and the Mojo standard library. It has two primary branches: 'main' for stable released versions and 'nightly' for the latest builds. To install Mojo, follow the guide for the last released build or use the nightly builds for a view of the development progress. Contributions are welcome on the 'nightly' branch, and the repository is licensed under the Apache License v2.0 with LLVM Exceptions.

README:

Website | Getting Started | API Documentation | Contributing | Changelog

Welcome to Mojo 🔥

Mojo is a new programming language that bridges the gap between research and production by combining Python syntax and ecosystem with systems programming and metaprogramming features. Mojo is still young, but it is designed to write blazing-fast code for CPUs, GPUs, and more as part of the MAX Platform.

This repo includes source code for:

This repo has two primary branches:

  • The stable branch, which is in sync with the last stable released version of Mojo. Use the examples here if you’re using a release build of Mojo.

  • The main branch, which is in sync with the Mojo nightly build and subject to breakage. Use this branch for contributions, or if you're using the latest nightly build of Mojo.

To learn more about Mojo, see the Mojo Manual.

Installing Mojo

Latest Released

To install the last released build of Mojo, follow the guide to Get started with Mojo.

Latest Nightly

The nightly Mojo builds are subject to breakage and provide an inside view of how the development of Mojo is progressing. Use at your own risk and be patient!

To get nightly builds, see the same instructions to Get started with Mojo, but when you create your project, instead use the following magic init command to set the conda package channel to max-nightly:

magic init hello-world-nightly --format mojoproject \
  -c conda-forge -c https://conda.modular.com/max-nightly

Or, if you're using conda, add the https://conda.modular.com/max-nightly/ channel to your environment.yaml file. For example:

[project]
name = "Mojo nightly example"
channels = ["conda-forge", "https://conda.modular.com/max-nightly/"]
platforms = ["osx-arm64", "linux-aarch64", "linux-64"]

[dependencies]
max = "*"

When you clone this repo, you'll be on the main branch by default, which includes code matching the latest nightly build:

git clone https://github.com/modular/mojo.git

If you want to instead see the source from the most recent stable release, then you can switch to the stable branch.

Contributing

When you want to report issues or request features, please create a GitHub issue here. See here for guidelines on filing good bugs.

We welcome contributions to this repo on the main branch. If you’d like to contribute to Mojo, please first read our Contributor Guide.

For more general questions or to chat with other Mojo developers, check out our Discord.

License

This repository and its contributions are licensed under the Apache License v2.0 with LLVM Exceptions (see the LLVM License). MAX and Mojo usage and distribution are licensed under the MAX & Mojo Community License.

Thanks to our contributors

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for mojo

Similar Open Source Tools

For similar tasks

For similar jobs