Skip to content

🐾 Lightweight scripting language designed for simplicity, modularity, and fast prototyping, ideal for building tools, automation with minimal setup.

License

Notifications You must be signed in to change notification settings

Neko-Nik-Org/NIKL-Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Nik-Lang Modern, lightweight programming language for concurrent, network-aware, and general-purpose programming

License GitHub code size in bytes GitHub commit activity Docker Pulls GitHub issues GitHub pull requests

NIKL / Nik-Lang / Nik Programming Language (pronounced "nickel") is a modern, lightweight programming language designed for concurrent, network-aware, and general-purpose programming. With native support for threads, asynchronous operations, and networking primitives, NIKL aims to simplify the development of scalable and responsive systems.

πŸ“ File extension: .nk

⚑ Goal: Simple concurrency, native networking, no boilerplate.

Note: NIKL is independently developed and not affiliated with or endorsed by the Rust Foundation


πŸ”€ What's in a Name?

The name NIKL is a blend of personal and symbolic meaning:

  • Nik comes from Neko Nik, derived from Nikhil β€” the creator's name
  • Neko (猫) means cat in Japanese 🐱 β€” light, agile, and independent
  • L stands for Language, but also completes the phonetic sound of Nikhil
  • Nickel, a lightweight and resilient metal, reflects the language’s design goals: lightweight, robust, and efficient

πŸš€ Features

  • βœ… Clean, minimal syntax
  • βœ… Lightweight, fast, and efficient
  • βœ… Built-in support for package management
  • βœ… Concurrency with spawn and wait
  • βœ… Async execution using a Rust-based async runtime (tokio)
  • βœ… Built-in networking and automation primitives
  • βœ… Lightweight interpreter written in Rust
  • βœ… Minimal dependencies and fast startup
  • βœ… Ideal for scripting, orchestration, and lightweight services

πŸ“¦ Getting Started

Prerequisites

  • Docker: For running the interpreter in a container
  • Rust: For building the interpreter from source (optional)
  • VSCode: For editing and syntax highlighting (optional)

Installation via Docker

If you prefer to use Docker, you can run the NIKL interpreter without installing it on your local machine. This is a great way to quickly test and run Nikl scripts.

  1. Pull the Docker image:

    docker pull nekonik/nikl:latest
  2. Run the interpreter:

     docker run -it --rm nekonik/nikl:latest
  3. Run a script:

You can run directly run this command to run the example script provided in the repository:

```bash
docker run --rm -v "$PWD":/examples nekonik/nikl:latest /examples/examples/neko.nk
```

Installation from Source

If you prefer to build from source, follow these steps:

  1. Clone the repository:
git clone https://github.com/Neko-Nik-Org/NIKL-Core
cd NIKL-Core
  1. Build the project:
cargo build --release
  1. Run the interpreter:
cargo run -- path/to/script.nk

πŸ“„ Example Nikl Script

// Easy function (type hinting is optional)
fn add_numbers(a: Int, b: Int) -> Int {
    return a + b
}

print(add_numbers(1, 2)) // Prints 3

Note: There's lot to explore in the language, including for loops, while loops, and infinite loops. The syntax is designed to be simple and intuitive

Syntax highlighter is available for NIKL in VSCode


🧠 Core Language Concepts

Concept Example
Variable let x = 42
Function Call fetch_data("url")
Thread Spawn let t = spawn do_task()
Awaiting let res = wait t
Output print("Hello World")
Sleep sleep(1000) (milliseconds)

πŸ›  Tech Stack

  • πŸ¦€ Rust β€” used as the implementation language for performance and safety
  • ⚑ Tokio β€” async runtime for concurrency
  • 🧩 Custom lexer, parser, and bytecode VM
  • πŸ§ͺ Tests and tracing support via tracing and cargo test

πŸ“Œ Roadmap

  • Tokenizer / Lexer
  • Parser
  • Core Interpreter (Eval / Runtime)
  • Module System
  • Basic I/O
  • OS, Regex internal module support
  • Documentation & Language Reference
  • spawn and wait for concurrency
  • File & socket I/O
  • Native async DNS, HTTP, etc.
  • Package system (nikl-pkg)
  • Compiler (To be planned, not yet started)
  • Package Manager website

πŸ“š Coming Soon

  • πŸ“¦ Prebuilt binaries: Easily download and run nikl without building from source.
  • πŸ“– Documentation & Language Reference: Comprehensive guides and examples.
  • 🌐 Official Website: nikl.nekonik.org (Work in Progress).
  • πŸ›  Package Manager: nikl-pkg for managing dependencies and modules.
  • πŸ§ͺ Standard Library: Core utilities for common tasks.

πŸ›‘ Contributing

We welcome contributions of all kindsβ€”bug fixes, feature implementations, documentation improvements, and more! If you'd like to get involved:

  1. Fork the repo and create a branch for your feature or fix.
  2. Follow the Contributing Guidelines.
  3. Submit a Pull Request (PR) for review.

Before contributing, please make sure to read the Code of Conduct.


πŸ“œ Code of Conduct

This project follows the Contributor Covenant Code of Conduct. Everyone interacting in the project’s codebase, issue trackers, discussion forums, and other spaces is expected to follow these guidelines to foster a safe, inclusive, and respectful environment.


πŸ“œ Contributing Guidelines

To maintain a clean and collaborative development experience, contributors are encouraged to follow the Contributing Guidelines, which include:

  • Branching and commit conventions
  • PR and issue templates
  • Code review expectations
  • Testing and formatting rules

πŸ§‘β€πŸ’» Code Owners

Code owners are responsible for reviewing and approving changes before they are merged into the main branch. The list of maintainers and reviewers is defined in the CODEOWNERS file.


πŸ” Security

Found a security issue or vulnerability? Please do not open a public issue. Instead, follow our Security Policy to report it responsibly. We'll work with you to investigate, triage, and address the problem.


πŸ’¬ Support

Need help using NIKL or have a general question?


🐞 Bug Reporting

If you encounter a bug, please open an issue on the GitHub Issues page and include:

  • A clear title and description
  • Steps to reproduce
  • Your environment (OS, version, etc.)
  • Screenshots or logs if available

This helps us fix issues faster and keep the language stable for everyone.


πŸ™πŸ» Acknowledgments

Special thanks to the open-source community, especially the Rust ecosystem, for inspiration and guidance. Gratitude to everyone who has contributed code, ideas, feedback, and encouragement to the NIKL project. You make this work possible. ❀️


🌐 Official Domains

The following domains and subdomains are officially owned and maintained by the author (Neko Nik):

Below are the official links to the author's personal website and social media:

πŸ“¨ Stay Updated

Join the newsletter and get instant updates on releases, features, and community announcements:

πŸ‘‰πŸ» https://mailer.nekonik.com/subscription/form

πŸ‘€ Author

Made with ❀️ by Neko Nik

Join the discussion on the Neko Nik Forums

πŸͺͺ License

NIKL-Core is licensed under the MIT License β€” use it freely, with attribution. No warranties, no liability.

⚠️ Disclaimer:

β€’ All domains under *.nekonik.com and *.nekonik.org, including but not limited to nikl.nekonik.org, are owned and managed by the author, Nikhil ("Neko Nik"). These are the only official sources for NIKL-related materials, documentation, and announcements.

β€’ You are responsible for any code written or executed using NIKL.

β€’ Modifications to the interpreter are at your own risk.

β€’ This is a personal project, not affiliated with or endorsed by the Rust Foundation or any other organization.

β€’ This is a work in progress β€” features may change as development continues.

β€’ Use at your own risk. No warranties or guarantees are provided. By using NIKL, you agree to these terms.

β€’ For more details, see the License file.

About

🐾 Lightweight scripting language designed for simplicity, modularity, and fast prototyping, ideal for building tools, automation with minimal setup.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Contributors 2

  •  
  •