Luvit 3.0 API Design

Style Guide

The files provided here are just an idea, and only represent a potential path that these libraries may be taken.

Definitions

Definitions in this project are being done via EmmyLua. The intent here is to provide types for the entire API.

Require

Require is being reworked for Luvit 3.0.

However, to keep this repository simple for EmmyLua to handle: requires should use . separators and use the repository root as the base.

For example: /std/fs/path.lua is required with require 'std.fs.path'.

Reimplementations or Reworkings

Luvit

  • path
  • stream
  • tls
  • buffer
  • childprocess
  • codec
  • core (as std.class and std.Emitter)
  • dgram
  • dns
  • fs
  • hooks
  • http-codec
  • http-header
  • http
  • https
  • json
  • net
  • pathjoin
  • pretty-print
  • process
  • querystring
  • readline
  • resource
  • thread
  • timer
  • url
  • ustring
  • utils

Lit (minus duplicates)

  • git
  • sha1
  • base64
  • coro-channel
  • coro-fs
  • coro-net
  • coro-spawn (merged into std.ChildProcess)
  • coro-split
  • coro-websocket
  • coro-wrapper
  • md5
  • prompt
  • semver
  • ssh-rsa
  • websocket-codec

To Be Removed

  • helpful: only provides string.levenshtein
  • repl: too specific
  • require: replace with new import
  • weblit-app: needs own repo
  • weblit-auto-headers: needs own repo
  • weblit-router: needs own repo
  • weblit-server: needs own repo
  • weblit-websocket: needs own repo
  • tls: replace with secure-socket
  • coro-http: merge with http, https and http-header