0.1.14 • Published 4 months ago

synchronous-server v0.1.14

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

Synchronous-Server

License

Overview

The synchronous-server package is a Node.js module that uses Rust crates to allow the Node.js server to run synchronously. The purpose of this package is to provide a synchronously running server-side implementation of Node.js for your specific needs, for example, safe modification of the same file by multiple clients when there are asynchronous operations between read and write.

Requirements

To use the synchronous-server package, you need to ensure the following:

  • Node.js is installed on your system
  • Rust is installed on your system

Installation

Make sure to have Rust and Cargo installed on your system, as this package relies on Rust crates for its functionality. The fastest way to install Rust is to use Rustup https://rustup.rs/

Install the synchronous-server package using npm:

npm install synchronous-server

Usage

After installing the package, you can use it in your Node.js application as follows:

const path = require("path");
const { startServer } = require("synchronous-server");

// Create an abs path to worker.js file
const workerPath = path.resolve(__dirname, "worker.js");

startServer(4001, workerPath);

Create file worker.js as follows:

const { request, response } = require("synchronous-server");

// Wrap to async to use await
(async () => {
  // Get request
  const req = request();
  console.log(`method: ${req.method}, url: ${req.url}`);
  // An asynchronous operation will be performed synchronously
  const res = await new Promise((resolve) => {
    setTimeout(() => {
      resolve({ hello: "world", body: req.body });
    }, 0);
  });
  // Send response
  response(res);
})();

API Reference

startServer(port: number, workerFilePath: string)

This function starts the synchronous server on the specified port.

  • port: The port number on which the server should listen.
  • workerFilePath: The absolute path to the request handler file.

License

This package is distributed under the MIT License. See the LICENSE file for more information.

Contributions

Contributions to the synchronous-server package are welcome. Feel free to submit issues or pull requests on the GitHub repository.

Support

For any questions or support with the synchronous-server package, please open an issue on the GitHub repository.

Roadmap

  • Support for advanced configuration options
  • Performance optimization

Versioning

This package follows the Semantic Versioning (SemVer) scheme. See the CHANGELOG for release history.

0.1.10

4 months ago

0.1.12

4 months ago

0.1.13

4 months ago

0.1.14

4 months ago

0.1.8

4 months ago

0.1.7

4 months ago

0.1.9

4 months ago

0.1.4

5 months ago

0.1.6

5 months ago

0.1.5

5 months ago

0.1.3

5 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.1.0

5 months ago