1.4.4 • Published 2 months ago

@hazae41/fleche v1.4.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago
npm i @hazae41/fleche

Node Package 📦

Features

Goals

  • 100% TypeScript and ESM
  • Zero-copy reading and writing
  • Transport agnostic (TCP, TLS, Tor)
  • Supports backpressure

HTTP

  • HTTP 1.1
  • Native Gzip and Deflate compression
  • Compatible with code using fetch
  • Reusable underlying connection

WebSocket

  • Relies on the above HTTP
  • Powered by WebAssembly
  • Same API than native
  • Only 0.3ms slower than native

Upcoming features

  • More HTTP 1.1 features
  • HTTP 2, HTTP 3 (QUIC)

Usage

import { Opaque, Writable } from "@hazae41/binary"
import { fetch } from "@hazae41/fleche"

function example(stream: ReadableWritablePair<Opaque, Writable>) {
  /**
   * Fetch using the underlying TCP or TLS stream
   */
  const res = await fetch("https://example.com", { stream })

  if (!res.ok)
    throw new Error(await res.text())

  return await res.json()
}
import { Opaque, Writable } from "@hazae41/binary"
import { WebSocket } from "@hazae41/fleche"

function example(stream: ReadableWritablePair<Opaque, Writable>) {
  const socket = new WebSocket("wss://example.com")

  /**
   * Pipe TCP or TLS input to WebSocket input
   */
  stream.readable
    .pipeTo(socket.inner.writable, { preventCancel: true })
    .catch(() => {})

  /**
   * Pipe WebSocket output to TCP or TLS output
   */
  socket.inner.readable
    .pipeTo(stream.writable, { preventClose: true, preventAbort: true })
    .catch(() => {})

  await new Promise((ok, err) => {
    socket.addEventListener("open", ok)
    socket.addEventListener("error", err)
  })

  socket.addEventListener("message", e => console.log(e.data))
  socket.send("Hello world")
}
1.4.4

2 months ago

1.4.3

2 months ago

1.4.2

2 months ago

1.4.1

2 months ago

1.4.0

2 months ago

1.3.0

2 months ago

1.2.13

3 months ago

1.2.14

3 months ago

1.2.15

3 months ago

1.2.12

5 months ago

1.2.10

5 months ago

1.2.11

5 months ago

1.2.0

6 months ago

1.2.8

6 months ago

1.2.7

6 months ago

1.2.6

6 months ago

1.2.5

6 months ago

1.2.4

6 months ago

1.2.3

6 months ago

1.2.2

6 months ago

1.2.1

6 months ago

1.1.54-1

8 months ago

1.1.54-0

8 months ago

1.1.54-3

8 months ago

1.1.54-2

8 months ago

1.1.45

9 months ago

1.1.44

9 months ago

1.1.43

10 months ago

1.1.42

10 months ago

1.1.49

8 months ago

1.1.48

8 months ago

1.1.47

9 months ago

1.1.46

9 months ago

1.2.9

5 months ago

1.1.54-12

8 months ago

1.1.54-11

8 months ago

1.1.54-14

8 months ago

1.1.54-13

8 months ago

1.1.54-10

8 months ago

1.1.56-0

8 months ago

1.1.54-5

8 months ago

1.1.54-4

8 months ago

1.1.54-7

8 months ago

1.1.54-6

8 months ago

1.1.54-9

8 months ago

1.1.54-8

8 months ago

1.1.52

8 months ago

1.1.51

8 months ago

1.1.50

8 months ago

1.1.56

8 months ago

1.1.55

8 months ago

1.1.54

8 months ago

1.1.53

8 months ago

1.1.59

8 months ago

1.1.58

8 months ago

1.1.57

8 months ago

1.1.63

7 months ago

1.1.62

7 months ago

1.1.61

7 months ago

1.1.60

7 months ago

1.1.29

12 months ago

1.1.28

12 months ago

1.1.30

12 months ago

1.1.34

12 months ago

1.1.33

12 months ago

1.1.32

12 months ago

1.1.31

12 months ago

1.1.38

11 months ago

1.1.37

12 months ago

1.1.36

12 months ago

1.1.35

12 months ago

1.1.39

11 months ago

1.1.41

11 months ago

1.1.40

11 months ago

1.1.19

12 months ago

1.1.18

12 months ago

1.1.23

12 months ago

1.1.22

12 months ago

1.1.21

12 months ago

1.1.20

12 months ago

1.1.27

12 months ago

1.1.26

12 months ago

1.1.25

12 months ago

1.1.24

12 months ago

1.1.16

1 year ago

1.1.15

1 year ago

1.1.17

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.22

1 year ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.26

1 year ago

1.0.25

1 year ago

1.0.24

1 year ago

1.0.23

1 year ago

1.0.29

1 year ago

1.0.28

1 year ago

1.0.27

1 year ago

1.0.33

1 year ago

1.0.32

1 year ago

1.0.30

1 year ago

1.0.36

1 year ago

1.0.35

1 year ago

1.0.34

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.12

1 year ago

1.1.11

1 year ago

1.1.10

1 year ago

1.1.14

1 year ago

1.1.13

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago