compilex is a node.js library which is used to build online code editor/compiler websites and webservices.
You can compile and respond back outputs for all the languages that can be compiled by the server.
Some of the online code compiling/judging websites are
Using compilex , you can built sites and services like the above said examples.- It is the one and only library implmenting the online compiler concept.
- compilex can detect infinite loops in the users program .
- It can compile programs by getting input from STDIN.
- Generates statistics for the administrator.
- Will include more supporting functions in the future releases.
compilex is currently in initial development stage . As the library grows , so does the list here .
| Language | Support |
|---|---|
| C | ✔ |
| C++ | ✔ |
| Java | ✔ |
| Python | ✔ |
| C# | ✔ |
| Visual Basic | ✔ |
| Ruby | Availlable Soon |
| JavaScript | Available Soon |
| PHP | Available Soon |
| Perl | Available Soon |
| Lua | Available Soon |
| Haskell | Available Soon |
| Other Languages | Available Later |
compilex roles out updates more frequently.Days are not so far , you can see the above languages soon.
- Get the program as input from the client as a request
- Use compilex modules to compile the program
- Get the output and errors in json and string formats
- Respond the output to the client
Inorder to compile any programming language , you need to first have the compiler for that programming language in the server machine.
- Installation :You need GCC compiler that can compile programs from your cmd/terminal
- Windows - You can get MinGw .
- Linux - Most of the linux versions are installed with gcc by default. If you haven't got , Take a look at Installing GCC .
- Testing the Environment :After installing , set your environment variables for accessing the GCC command lines from any directory
- Windows - create a c file in a directory , execute
g++ filename.c -o output.exe
output.exe
then you will get the output of the program - Linux - create a c file in a directory , execute
gcc filename.c -o output.out
./output.out
then you will get the output of the program
- Windows - create a c file in a directory , execute
- Installion : You need JDK ( Java Development Kit ) to compile Java programs.Click here to download JDK for various platforms.
- Testing the Environment :After installing , set your environment variables for accessing the javac command lines from any directory
- Create a Java file named Main.java with main function
javac Main.java
java Main
then you will get the output of the program.
- Create a Java file named Main.java with main function
- Installation : You can get and install Python from here
- Testing the Environment :After installing , set your environment variables for accessing python command lines from any directory
- Create a python file hello.py and execute
python hello.py
then you will get the output of the program.
- Create a python file hello.py and execute
- Installation : You can have the idea of accessing C# compiler from here . This step also adds VB compiler to the scope automatically as csc and vbc are located in the same directory
- Testing the Environment :After installing , set your environment variables for accessing C# and VB command lines from any directory
- Create a C# or VB file Hello.cs or Hello.vb and execute
csc Hello.cs
Hello.exe
or
vbc Hello.vb
Hello.exe
then you will get the output of the program.
- Create a C# or VB file Hello.cs or Hello.vb and execute
NOTE : Video demos for setting up the compilers and using compilex will be availble soon.
```javascript var compiler = require('compilex'); var options = {stats : true}; //prints stats on console compiler.init(options); ``` init() creates a folder named temp in your project directory which is used for storage purpose. Before using other methods , make sure to call init() method. ```javascript //if windows var envData = { OS : "windows" , cmd : "g++"}; // (uses g++ command to compile ) //else var envData = { OS : "linux" , cmd : "gcc" }; // ( uses gcc command to compile ) compiler.compileCPP(envData , code , function (data) { res.send(data); //data.error = error message //data.output = output value });//res is the response object
<h5>3)C and C++ with inputs </h5>
```javascript
//if windows
var envData = { OS : "windows" , cmd : "g++"}; // (uses g++ command to compile )
//else
var envData = { OS : "linux" , cmd : "gcc" }; // ( uses gcc command to compile )
compiler.compileCPPWithInput(envData , code , input , function (data) {
res.send(data);
});
var envData = { OS : "windows"};
//mono modules for linux is not included till now
compiler.compileCSWithInput( envData , code , input , function(data){
res.send(data);
});
<h5>10)Visual Basic</h5>
```javascript
var envData = { OS : "windows"};
compiler.compileVB( envData , code , function(data){
res.send(data);
});
var envData = { OS : "windows"};
compiler.compileVBWithInput( envData , code , input , function(data){
res.send(data);
});
<h5>12)Memory Management </h5>
All the temporary files ( source code and executables ) are created in your temp directory.
flush and flushSync helps you to free the memory by deleting the temporary files.
```javascript
compiler.flush(function(){
console.log('All temporary files flushed !');
});
Synchronous version of flush
compiler.flushSync();You can find examples here.The examples are downloaded everytime you download compilex via npm.
you can begin with editing CSS and publish your site in minutes.
Here is the screenshot of the demo.

All the contents in this repository are released under the MIT License .
