nitlang/nit
{ "createdAt": "2009-10-06T15:03:00Z", "defaultBranch": "master", "description": "Nit language", "fullName": "nitlang/nit", "homepage": "http://nitlanguage.org", "language": "C", "name": "nit", "pushedAt": "2024-11-25T15:42:26Z", "stargazersCount": 250, "topics": [ "compiler", "language", "nit" ], "updatedAt": "2025-08-12T13:05:50Z", "url": "https://github.com/nitlang/nit"}Nit is an expressive language with a script-like syntax, a friendly type-system and aims at elegance, simplicity and intuitiveness.
Nit has a simple straightforward style and can usually be picked up quickly, particularly by anyone who has programmed before. While object-oriented, it allows procedural styles.
The Nit Compiler (nitc) produces efficient machine language binaries.
Some Nit features:
- Pure Object-Oriented.
- Multiple Inheritance.
- Realist typing policy.
- Light and clear syntax.
Requirements:
- gcc http://gcc.gnu.org/ (or a compatible C compiler)
- pkg-config http://www.freedesktop.org/wiki/Software/pkg-config/
- ccache http://ccache.samba.org/ to improve recompilation
- libgc-dev http://hboehm.info/gc/
- libunwind http://nongnu.org/libunwind
Those are available in most Linux distributions
$ sudo apt-get install build-essential ccache libgc-dev libunwind-dev pkg-configand on OS X using brew
$ brew install ccache bdw-gc libunwind-headers pkgconfigor with MacPorts
$ sudo port install ccache boehmgc libunwind-headers pkgconfigImportant files and directories:
- benchmarks/ Script to bench the compilers
- bin/ The Nit tools
- c_src/ C code of nitc (needed to bootstrap)
- clib/ C code needed by nitc to compile programs
- contrib/ Various Nit programs (may or may not be useful)
- doc/ Documentation
- examples/ Program examples written in Nit
- lib/ Nit standard library
- LICENCE License of the software
- Makefile Bootstrap the Nit tools
- misc/ Some additional files for common text editors and tools
- NOTICE.md List of the authors
- README This file
- share/ Common resources used by tools
- src/ The Nit tool sources (written in Nit)
- tests/ Non-regression test-suite
How to start:
$ make$ bin/nitc examples/hello_world.nit$ ./hello_worldYou can source misc/nit_env.sh to setup your environment like PATH, MANPATH and bash completion.
To have your environment automatically configured at login, just source it with install as argument.
$ . misc/nit_env.sh installMore tools:
Additional tools can also be compiled but require more dependencies.
-
graphviz http://www.graphviz.org/ to enable graphs with the nitdoc tool
-
libcurl https://curl.haxx.se/libcurl/ for the nit package manager nitpm
-
libevent https://libevent.org/ for the nit documentation server nitweb
-
libmongoc http://mongoc.org/ also for nitweb
$ sudo apt-get install graphviz libcurl4-openssl-dev libevent-dev libmongoc-dev $ make more
Contributing:
To contribute to Nit, please see [CONTRIBUTING]!(CONTRIBUTING.md).
The best way to ask the team for advice, submit bugs or request features, is through the use of Github issues, using the appropriate tag (forum, feature-request, bug).
Information, contacts and help:
- Website http://www.nitlanguage.org
- Issues https://github.com/nitlang/nit/issues
- Chatroom https://gitter.im/nitlang/nit