@runejs/core

Core logging, networking, and buffer functionality for RuneJS applications.

Usage no npm install needed!

<script type="module">
  import runejsCore from 'https://cdn.skypack.dev/@runejs/core';
</script>

README

RuneJS Discord Server

RuneJS

@runejs/core

Core logging, networking, compression, encryption, and additional buffer functionality for RuneJS applications.

@runejs/core

  • logger is exported as a singleton Pino logging wrapper, offering the following functions:
    • logger.info(...messages)
    • logger.debug(...messages)
    • logger.warn(...messages)
    • logger.error(...messages)
    • logger.fatal(...messages)
    • logger.trace(...messages)
  • Ability to set the Pino logging date/time formatting function via setLoggerTimeFn(Pino.TimeFn)
  • Ability to set the Pino logging pretty print config value via setLoggerPrettyPrint(boolean)
  • Setting of all Pino logging options via setLoggerOptions(Pino.LoggerOptions)

@runejs/core/buffer

  • ByteBuffer is the main export.
    • Node Uint8Array wrapper with additional utility functions.
    • Unified configurable get and put methods to easily move bytes within the buffer.
    • Int24, Smart, Long and String type support.
    • Big endian, little endian, and mixed endian support.
    • Bit access through openBitBuffer(), putBits(), and closeBitBuffer()

@runejs/core/net

  • SocketServer
    • Handles connections made to a RuneJS socket server.
  • SocketServer.launch(serverName, hostName, port, connectionHandlerFactory)
    • Spins up a new Node Socket server with the specified host and port.
  • ServerConfigOptions
    • Options for a configured Socket server, imported using the parseServerConfig() function.

@runejs/core/compression

  • Exported class Gzip handles Gzip compression and decompression.
  • Exported class Bzip2 handles Bzip2 compression and decompression.

@runejs/core/encryption

Provides XTEA encryption and decryption functionality, as well as a key file loader.

  • Exported as class Xtea