1.0.1 • Published 1 year ago

synchronous-server v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year 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

Installation

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");

const port = 4001;
startServer({ workerPath, port }, () => {
  console.log("Listen:", port);
});

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}, () => void)

This function starts the synchronous server on the specified port.

  • port: The port number on which the server should listen.
  • workerPath: 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.

1.0.1

1 year ago

1.0.0

1 year ago

0.1.15

1 year ago

0.1.10

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago