- C++ 95.4%
- CMake 1.5%
- Shell 1.5%
- PowerShell 1%
- Batchfile 0.6%
| .idea | ||
| resources | ||
| src | ||
| TestProject | ||
| tests | ||
| .gitignore | ||
| build.bat | ||
| build.sh | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| CONTRIBUTORS.md | ||
| crowdin.yml | ||
| example.nm | ||
| FirstAlphaSpecification.md | ||
| LICENSE | ||
| neoluma.png | ||
| neoluma.svg | ||
| neoluma_full.png | ||
| neoluma_full.svg | ||
| neoluma_wordmark.png | ||
| neoluma_wordmark.svg | ||
| README.md | ||
| Specification.md | ||
| TRADEMARK.md | ||
Neoluma
Neoluma (from et.: gr. neo- & lat. -lumen, aka "New Light") is a multi-level, general-purpose programming language designed to be a language for everything. Whether you're crafting a quick script on your knee or developing a large operating system, Neoluma is made with developer experience in mind. Featuring a clean, Python-JS-like syntax with the structure and power of C++ & C# - it's expressive, efficient, and built for modern development.
| Website | License | Discord |
✨ Features
- Clean, modern syntax inspired by Python, JavaScript, and C#
- Static typing with type inference for simplicity and safety
- Rich type system, including a custom fixed-point
numbertype, plusint,float,bool,string,set,dict,array,result, and more - Powerful decorators like
@entry,@comptime,@unsafe, and others - Flexible preprocessor directives for low-level and modular control:
#import— import local or external modules (e.g., C++ bindings)#unsafe— enable pointer operations#macro— define macros for compile-time logic
- Built-in async/await for concurrency
- Compile-time evaluation and an evolving macro system (WIP)
- Configurable memory management — automatic or manual, your choice
- Cross-platform compilation with LLVM backend for native performance
- IDE support (planned) — syntax highlighting, debugging, and project tools
📃 File Formats
.nm— Neoluma Module: source code.nlp— Neoluma Project: project structure/configuration
project_name/
├── main.nm
├── utils.nm
└── project.nlp
🧩 Example
@entry
fn main() {
name = "Neoluma";
print("Hello, ${name}!")
}
If the function doesn't have a return type, it is
voidby default — noreturnrequired.
⌨️ Usage (planned CLI)
neoluma build project.nlp #compiled way
neoluma run main.nm #interpreted way
🗺️ Roadmap
- Lexer
- Parser
- Semantic Analyzer
- LLVM IR Compiler [In progress]
- CLI Toolchain
- Cross-platform support (Linux / Windows / macOS / Android / iOS / etc.)
- Plugin system and editor integration
- Transpilation support (C++, JS, etc.)
🕶️ Vision
Neoluma aims to be a unified language that bridges low-level control and high-level productivity. It is designed for:
- Systems programming (including OS kernels)
- Cross-platform apps and utilities
- Educational tools and experimentation
- Scripting with performance
- Future self-hosting development
🚦 Status
Neoluma is in early development. Contributions and feedback are welcome!
🔧 Building from source
Neoluma can be built from cloned source via building scripts.
It doesn't require much input aside from just running the script. Usage:
./build.<ext> [release|debug] [neoluma|payload|installer|all] [--no-install (available only on Unix)]
It generates the full installation output at ./.build/.runtime/[Debug|Release]/
📖 Credits
Created by TsukimotoX under Astrahelm Project and Apache License.
Neoluma™ is a trademark of the Neoluma project; the name and branding are not granted under the Apache-2.0 license.
More documentation and compiler features coming soon! Join our Discord server!
Help us translate Neoluma to other languages via our Crowdin!
This project uses LLVM under the Apache License v2.0 with LLVM Exceptions.