NoteYard - Cloud Secured
NoteYard - Cloud Secured
codepad
ideone
HackerRank
CodeChef
Using compilex , you can built sites and services like the above said examples.
compilex is an experimental package , however , if you want to build your site quickly , you
can prefer to use the API of the above said services. Node.js Wrapper modules for those API
are available. You can try HackerRank SDK and HackerEarth SDK.
Typical scenarios in which you have to go with wrapper modules instead of compilex are
If you don't want to have the pain of configuring compilers on your server.
If you don't have the access to the VM on which your site is hosted
If you feel tired of configuring compilex over SSH.
Work Flow
1. Get the program as input from the client as a request
2. Use compilex modules to compile the program
3. Get the output and errors in json and string formats
localhost:3000/blogpost/6223668952036d4480e861ed 1/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
Setting Up Compilers
Inorder to compile any programming language , you need to first have the compiler for that
programming language in the server machine.
C and C++
1. Installation :You need GCC compiler that can compile programs from your cmd/terminal
1. Testing the Environment :After installing , set your environment variables for accessing
the GCC command lines from any directory
Java
1. Installion : You need JDK ( Java Development Kit ) to compile Java programs.Click here to
download JDK for various platforms.
2. Testing the Environment :After installing , set your environment variables for accessing
the javac command lines from any directory
localhost:3000/blogpost/6223668952036d4480e861ed 2/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
Python
1. Installation : You can get and install Python from here
2. Testing the Environment :After installing , set your environment variables for accessing
python command lines from any directory
C# and VB
1. 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
2. Testing the Environment :After installing , set your environment variables for accessing
C# and VB command lines from any directory
Documentation
1)Require compilex
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.
localhost:3000/blogpost/6223668952036d4480e861ed 3/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
//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
});
4)Java
//if windows
var envData = { OS : "windows"};
//else
var envData = { OS : "linux" }; // (Support for Linux in Next version)
compiler.compileJava( envData , code , function(data){
res.send(data);
});
localhost:3000/blogpost/6223668952036d4480e861ed 4/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
6)Python
//if windows
var envData = { OS : "windows"};
//else
var envData = { OS : "linux" };
compiler.compilePython( envData , code , function(data){
res.send(data);
});
8)C#
var envData = { OS : "windows"};
//mono modules for linux is not included till now
compiler.compileCS( envData , code , function(data){
res.send(data);
});
10)Visual Basic
localhost:3000/blogpost/6223668952036d4480e861ed 5/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
12)Memory Management
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.
compiler.flush(function(){
console.log('All temporary files flushed !');
});
compiler.flushSync();
13)Statistical Data
Getting statistics about your compilex server has been taken care. fullStat returns json data
about your server.
compiler.fullStat(function(data){
res.send(data);
});
localhost:3000/blogpost/6223668952036d4480e861ed 6/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
//compile and execute the file and kill it after 1 second if it still running
var envData = { OS : "linux" , cmd : "gcc" ,options: {timeout:1000 } };
compiler.compileCPP(envData , code , function (data) {
res.send(data);
//data.error = error message
//data.output = output value
});
Examples :
Index.html -
<html>
<head>
<title>Online IDE</title>
</head>
<body>
<center>
<h1>Online IDE</h1>
<form id="myform" name="myform" method="post" action="compilecode">
<h3>Code</h3>
<textarea rows="13" cols="100" id="code" name="code"></textarea>
<br />
<h3>Input</h3>
<textarea rows="10" cols="100" id="input" name="input"></textarea>
<br />
Language :
<select name="lang">
<option value="C">C</option>
<option value="Java">Java</option>
<option value="Python">Python</option>
</select>
Compile With Input :
<input type="radio" name="inputRadio" id="inputRadio" value="true" />yes
<input type="radio" name="inputRadio" id="inputRadio" value="false" />No
<br />
<input type="submit" value="submit" name="submit" />
</form>
localhost:3000/blogpost/6223668952036d4480e861ed 7/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
</center>
</body>
</html>
index.js
localhost:3000/blogpost/6223668952036d4480e861ed 8/10
8/12/23, 4:04 PM NoteYard - Cloud Secured
app.listen(8080);
compiler.flush(function () {
console.log("All temporary files flushed !");
});
1 Comment
Add a comment...
EasyBucket.Pk
nicely donee
Like · Reply · 26w
localhost:3000/blogpost/6223668952036d4480e861ed 10/10