This directory contains all Jet-related code, excluding third-party projects.
The codebase is divided into two categories:
- main projects (stored in this folder)
- component libraries (stored in the
Componentsfolder)
Every project that is directly related to the Jet language is a main project. The second group consists of libraries that are used by the main projects. We are aware that as the language evolves, the number of sub-projects will increase significantly, so we decided to have the most important ones separated from the rest.
It is important to clarify the difference between the Core and Foundation:
The Core is a common library used by other main projects that provide language-related
functionality (such as module system, type system, etc.).
The Foundation is a component library with the most basic functionality that is used
across the whole codebase, such as:
- Standard library aliases (e.g.,
u8,i32,usize,String,Opt, etc.) Resulttype
Here is a list of all projects in the codebase:
| Project | Namespace | Brief description |
|---|---|---|
| Libraries | ||
| Parser | jet::parser::* |
Responsible for providing a grammar and generating AST. |
| Core | jet::core::* |
Provides common, language-related functionality such as module system, type system, etc. |
| Compiler | jet::compiler::* |
The base library that is used by the CompilerApp (and possibly other projects in the future) |
| VM (TBD) | jet::vm::* |
(FUTURE PLAN) Implements an on-the-fly execution of the Jet code, improving compile-time capabilities of the language and providing a way to run Jet code on any platform. |
| Applications | ||
| CompilerApp | - |
The app project that creates the jetc executable. |
| VMApp (TBD) | - |
(FUTURE PLAN)
The app project that creates the rigvm executable.
|
| Other | ||
| Test | - |
Tests the behavior of various components of the codebase. |
| Project | Namespace | Brief description |
|---|---|---|
| Foundation | jet::comp::foundation::* |
The most basic functionality that is used across the whole codebase, such as
standard library aliases, Result type, etc.
|
| PEG | jet::comp::peg::* |
A custom implementation of a PEG parser generator used by the Parser project. |
| Format | jet::comp::fmt::* |
Formatting library that exposes fmtlib content as a module. |