2.0.1 • Published 1 year ago

qcompiler v2.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Why qCompiler?

qCompiler offers a user-friendly solution for developers who want to integrate code compilation into their applications. Whether you are building an educational platform, have coding challenges, or need a reliable code compilation service, qCompiler streamlines the process.

Supported Languages

qCompiler is currently in the initial development stage. As the library grows, so does the list here.

LanguageSupport
C
C++
Java
Python

Supported Operating Systems

All the APIs are written for Windows and Linux operating systems. But, till now we have tested only for the Windows operating system. Soon we will test all the APIs for the Linux operating system also.

Workflow

  1. Receive Code and Input Data: Get the program and input data from the client as requested.

  2. Compile the Program: Utilize the qCompiler module to compile the program.

  3. Retrieve Output and Errors: Obtain the output and errors in JSON and string formats.

  4. Respond to the Client: Send the output back to the client.

Setting Up Compilers

Before utilizing qCompiler, ensure that the necessary compilers for the target programming languages are set up on the server. Necessary guidelines can be found here.

Getting Started

Installation

To install qCompiler run the following command.

  npm i qcompiler

Define Configuration

Define the basic configurations to compile your program.

const config = {
   standard: "c11",
   cmd: "gcc",
   executionCmd: 'java', //only for java
   timeout: 2000,
}

standard:

You can define any valid standard that supports your machine's compiler. standard is applicable only for C and C++.

Default standard:

LanguageDefault Value
C"c11"
C++"c17"

cmd and executionCmd:

cmd and executionCmd are the commands to compile or run your program.

Default values for cmd for several languages are:

LanguageDefault Value
C"gcc"
C++"g++"
Java"javac"
Python"python"

executionCmd is necessary for Java only. Default value javac.

// If the environment variable is set
cmd: "command"

// If the environment variable is not set
cmd: "path/to/command/yourCommand" 

// Example
cmd: "C:\MinGW\bin\gcc"

Timeout:

In milliseconds the maximum amount of time the program is allowed to run. Default: 1000ms.

Basic Usage

C

To compile a C program you can use the following template.

const compiler = new QCompiler(config);

const response = await compile.compileC(code, input);

console.log(response)

C

To compile a C++ program you can use the following template.

const compiler = new QCompiler(config);

const response = await compile.compileCpp(code, input);

console.log(response)

Java

To compile a Java program you can use the following template.

const compiler = new QCompiler(config);

const response = await compile.compileJava(code, input);

console.log(response)

Python

To compile a Python program you can use the following template.

const compiler = new QCompiler(config);

const response = await compile.compilePython(code, input);

console.log(response)

Output Format

//  data.status = boolean | string
//  data.output = Output value | undefined
//  data.error  = Error message (if status == false) | undefined
//  executionTime = total execution time in milisecond | undefined

Note

For the most up-to-date information and usage guidelines, please take a look at the official documentation. Explore the power of code compilation with qCompiler – the comprehensive solution for seamless integration and efficient processing.

License

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

2.0.1

1 year ago

2.0.0

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago