The dexador Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The dexador Reference Manual

This is the dexador Reference Manual, version 0.9.10, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:41:45 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Dexador

Build Status Coverage Status

Dexador is yet another HTTP client for Common Lisp with neat APIs and connection-pooling.

Warning

This software is still BETA quality. The APIs will be likely to change.

Differences from Drakma

See also a presentation given at Lisp Meetup #31.

Usage

(dex:get "http://lisp.org/")

(dex:post "https://example.com/login"
          :content '(("name" . "fukamachi") ("password" . "1ispa1ien")))

Posting a form-data

You can specify a form-data at :content in an association list. The data will be sent in application/x-www-form-urlencoded format.

(dex:post "http://example.com/entry/create"
          :content '(("title" . "The Truth About Lisp")
                     ("body" . "In which the truth about lisp is revealed, and some alternatives are enumerated.")))

Auto-detects Multipart

If the association list contains a pathname, the data will be sent as multipart/form-data.

(dex:post "http://example.com/entry/create"
          :content '(("photo" . #P"images/2015030201.jpg")))

Following redirects (GET or HEAD)

If the server reports that the requested page has moved to a different location (indicated with a Location header and a 3XX response code), Dexador will redo the request on the new place, the fourth return value shows.

(dex:head "http://lisp.org")
;=> ""
;   200
;   #<HASH-TABLE :TEST EQUAL :COUNT 7 {100D2A47A3}>
;   #<QURI.URI.HTTP:URI-HTTP http://lisp.org/index.html>
;   NIL

You can limit the count of redirection by specifying :max-redirects with an integer. The default value is 5.

Using cookies

Dexador adopts cl-cookie for its cookie management. All functions takes a cookie-jar instance at :cookie-jar.

(defvar *cookie-jar* (cl-cookie:make-cookie-jar))

(dex:head "https://mixi.jp" :cookie-jar *cookie-jar* :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   HEAD / HTTP/1.1
;   User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
;   Host: mixi.jp
;   Accept: */*
;   
;   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;   HTTP/1.1 200 OK
;   Date: Tue, 10 Mar 2015 10:16:29 GMT
;   Server: Apache
;   X-Dealer: 152151
;   X-XRDS-Location: https://mixi.jp/xrds.pl
;   Cache-Control: no-cache
;   Pragma: no-cache
;   Vary: User-Agent
;   Content-Type: text/html; charset=EUC-JP
;   Set-Cookie: _auid=9d47ca5a00ce4980c41511beb2626fd4; domain=.mixi.jp; path=/; expires=Thu, 09-Mar-2017 10:16:29 GMT
;   Set-Cookie: _lcp=8ee4121c9866435007fff2c90dc31a4d; domain=.mixi.jp; expires=Wed, 11-Mar-2015 10:16:29 GMT
;   X-Content-Type-Options: nosniff
;   
;   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

;; Again
(dex:head "https://mixi.jp" :cookie-jar *cookie-jar* :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   HEAD / HTTP/1.1
;   User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
;   Host: mixi.jp
;   Accept: */*
;   Cookie: _auid=b878756ed71a0ed5bcf527e324c78f8c; _lcp=8ee4121c9866435007fff2c90dc31a4d
;   
;   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;   HTTP/1.1 200 OK
;   Date: Tue, 10 Mar 2015 10:16:59 GMT
;   Server: Apache
;   X-Dealer: 152146
;   X-XRDS-Location: https://mixi.jp/xrds.pl
;   Cache-Control: no-cache
;   Pragma: no-cache
;   Vary: User-Agent
;   Content-Type: text/html; charset=EUC-JP
;   Set-Cookie: _auid=b878756ed71a0ed5bcf527e324c78f8c; domain=.mixi.jp; path=/; expires=Thu, 09-Mar-2017 10:16:59 GMT
;   Set-Cookie: _lcp=8ee4121c9866435007fff2c90dc31a4d; domain=.mixi.jp; expires=Wed, 11-Mar-2015 10:16:59 GMT
;   X-Content-Type-Options: nosniff
;   
;   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Basic Authorization

(dex:head "http://www.hatena.ne.jp/" :basic-auth '("nitro_idiot" . "password") :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   HEAD / HTTP/1.1
;   User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
;   Host: www.hatena.ne.jp
;   Accept: */*
;   Authorization: Basic bml0cm9faWRpb3Q6cGFzc3dvcmQ=
;   
;   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Faking a User-Agent header

You can overwrite the default User-Agent header by simply specifying "User-Agent" in :headers.

(dex:head "http://www.sbcl.org/" :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   HEAD / HTTP/1.1
;   User-Agent: Dexador/0.1 (SBCL 1.2.6); Darwin; 14.1.0
;   Host: www.sbcl.org
;   Accept: */*
;   
;   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(dex:head "http://www.sbcl.org/"
          :headers '(("User-Agent" . "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18"))
          :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;   HEAD / HTTP/1.1
;   User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18
;   Host: www.sbcl.org
;   Accept: */*
;   
;   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Reusing a connection

Dexador reuses a connection by default. As it skips a TCP handshake, it would be much faster when you send requests to the same host continuously.

Handling unexpected HTTP status code

Dexador singals a condition http-request-failed when the server returned 4xx or 5xx status code.

;; Handles 400 bad request
(handler-case (dex:get "http://lisp.org")
  (dex:http-request-bad-request ()
    ;; Runs when 400 bad request returned
    )
  (dex:http-request-failed (e)
    ;; For other 4xx or 5xx
    (format *error-output* "The server returned ~D" (dex:response-status e))))

;; Ignore 404 Not Found and continue
(handler-bind ((dex:http-request-not-found #'dex:ignore-and-continue))
  (dex:get "http://lisp.org"))

;; Retry
(handler-bind ((dex:http-request-failed #'dex:retry-request))
  (dex:get "http://lisp.org"))

;; Retry 5 times
(handler-bind ((dex:http-request-failed (dex:retry-request 5 :interval 3)))
  (dex:get "http://lisp.org"))

Proxy

You can connect via proxy.

(dex:get "http://lisp.org/" :proxy "http://proxy.yourcompany.com:8080/")

Functions

All functions take similar arguments.

[Function] request

(dex:request uri &key method version content headers basic-auth cookie-jar timeout
                   (keep-alive t) (use-connection-pool t) (max-redirects 5)
                   ssl-key-file ssl-cert-file ssl-key-password
                   stream verbose force-binary want-stream proxy)
;=> body
;   status
;   response-headers
;   uri
;   stream

Send an HTTP request to uri.

The body is an octet vector or a string if the Content-Type is text/*. If you always want it to return an octet vector, specify :force-binary as T.

The status is an integer which represents HTTP status code.

The response-headers is a hash table which represents HTTP response headers. Note that all hash keys are downcased like "content-type". If there's duplicate HTTP headers, those values are concatenated with a comma.

The uri is a QURI object which represents the last URI Dexador requested.

The stream is a usocket stream to communicate with the HTTP server if the connection is still alive and can be reused. This value may be NIL if :keep-alive is NIL or the server closed the connection with Connection: close header.

This function signals http-request-failed when the HTTP status code is 4xx or 5xx.

[Function] get

(dex:get uri &key version headers basic-auth cookie-jar keep-alive timeout max-redirects force-binary want-stream
               ssl-key-file ssl-cert-file ssl-key-password
               stream verbose proxy)

[Function] post

(dex:post uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
                ssl-key-file ssl-cert-file ssl-key-password
                stream verbose proxy)

[Function] head

(dex:head uri &key version headers cookie-jar timeout max-redirects
                ssl-key-file ssl-cert-file ssl-key-password
                stream verbose proxy)

[Function] put

(dex:put uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
               ssl-key-file ssl-cert-file ssl-key-password
               stream verbose proxy)

[Function] patch

(dex:patch uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
                 ssl-key-file ssl-cert-file ssl-key-password
                 stream verbose proxy)

[Function] delete

(dex:delete uri &key version headers cookie-jar keep-alive timeout force-binary want-stream
                  ssl-key-file ssl-cert-file ssl-key-password
                  stream verbose proxy)

[Function] fetch

Send a GET request to URI and write the response body to the DESTINATION.

(dex:fetch uri destination &key if-exists verbose proxy)

Benchmark

Benchmark graph

Drakma

(time (dotimes (i 30) (drakma:http-request "http://files.8arrow.org/181B.html")))
Evaluation took:
  1.012 seconds of real time
  0.174742 seconds of total run time (0.148141 user, 0.026601 system)
  17.29% CPU
  1,683 forms interpreted
  500 lambdas converted
  3,027,928,949 processor cycles
  29,416,656 bytes consed

Dexador

(time (dotimes (i 30) (dex:get "http://files.8arrow.org/181B.html")))
Evaluation took:
  0.499 seconds of real time
  0.028057 seconds of total run time (0.019234 user, 0.008823 system)
  5.61% CPU
  56 forms interpreted
  16 lambdas converted
  1,494,851,690 processor cycles
  1,472,992 bytes consed

See Also

Author

Copyright

Copyright (c) 2015 Eitaro Fukamachi (e.arrows@gmail.com)

License

Licensed under the MIT License.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 dexador

Author

Eitaro Fukamachi

License

MIT

Description

Yet another HTTP client for Common Lisp

Long Description

# Dexador

[![Build Status](https://travis-ci.org/fukamachi/dexador.svg?branch=master)](https://travis-ci.org/fukamachi/dexador)
[![Coverage Status](https://coveralls.io/repos/fukamachi/dexador/badge.svg?branch=master)](https://coveralls.io/r/fukamachi/dexador)

Dexador is yet another HTTP client for Common Lisp with neat APIs and connection-pooling.

## Warning

This software is still BETA quality. The APIs will be likely to change.

## Differences from Drakma

* Fast, particularly when requesting to the same host (See [Benchmark](#benchmark))
* Neat APIs
* Signal a condition when HTTP request failed

See also [a presentation given at Lisp Meetup #31](http://www.slideshare.net/fukamachi/dexador-rises).

## Usage

“‘common-lisp
(dex:get "http://lisp.org/")

(dex:post "https://example.com/login"
:content ’(("name" . "fukamachi") ("password" . "1ispa1ien")))
“‘

### Posting a form-data

You can specify a form-data at ‘:content‘ in an association list. The data will be sent in ‘application/x-www-form-urlencoded‘ format.

“‘common-lisp
(dex:post "http://example.com/entry/create"
:content ’(("title" . "The Truth About Lisp")
("body" . "In which the truth about lisp is revealed, and some alternatives are enumerated.")))
“‘

### Auto-detects Multipart

If the association list contains a pathname, the data will be sent as ‘multipart/form-data‘.

“‘common-lisp
(dex:post "http://example.com/entry/create"
:content ’(("photo" . #P"images/2015030201.jpg")))
“‘

### Following redirects (GET or HEAD)

If the server reports that the requested page has moved to a different location (indicated with a Location header and a 3XX response code), Dexador will redo the request on the new place, the fourth return value shows.

“‘common-lisp
(dex:head "http://lisp.org")
;=> ""
; 200
; #<HASH-TABLE :TEST EQUAL :COUNT 7 {100D2A47A3}>
; #<QURI.URI.HTTP:URI-HTTP http://lisp.org/index.html>
; NIL
“‘

You can limit the count of redirection by specifying ‘:max-redirects‘ with an integer. The default value is ‘5‘.

### Using cookies

Dexador adopts [cl-cookie](https://github.com/fukamachi/cl-cookie) for its cookie management. All functions takes a cookie-jar instance at ‘:cookie-jar‘.

“‘common-lisp
(defvar *cookie-jar* (cl-cookie:make-cookie-jar))

(dex:head "https://mixi.jp" :cookie-jar *cookie-jar* :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; HEAD / HTTP/1.1
; User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
; Host: mixi.jp
; Accept: */*
;
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; HTTP/1.1 200 OK
; Date: Tue, 10 Mar 2015 10:16:29 GMT
; Server: Apache
; X-Dealer: 152151
; X-XRDS-Location: https://mixi.jp/xrds.pl
; Cache-Control: no-cache
; Pragma: no-cache
; Vary: User-Agent
; Content-Type: text/html; charset=EUC-JP
; Set-Cookie: _auid=9d47ca5a00ce4980c41511beb2626fd4; domain=.mixi.jp; path=/; expires=Thu, 09-Mar-2017 10:16:29 GMT
; Set-Cookie: _lcp=8ee4121c9866435007fff2c90dc31a4d; domain=.mixi.jp; expires=Wed, 11-Mar-2015 10:16:29 GMT
; X-Content-Type-Options: nosniff
;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

;; Again
(dex:head "https://mixi.jp" :cookie-jar *cookie-jar* :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; HEAD / HTTP/1.1
; User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
; Host: mixi.jp
; Accept: */*
; Cookie: _auid=b878756ed71a0ed5bcf527e324c78f8c; _lcp=8ee4121c9866435007fff2c90dc31a4d
;
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; HTTP/1.1 200 OK
; Date: Tue, 10 Mar 2015 10:16:59 GMT
; Server: Apache
; X-Dealer: 152146
; X-XRDS-Location: https://mixi.jp/xrds.pl
; Cache-Control: no-cache
; Pragma: no-cache
; Vary: User-Agent
; Content-Type: text/html; charset=EUC-JP
; Set-Cookie: _auid=b878756ed71a0ed5bcf527e324c78f8c; domain=.mixi.jp; path=/; expires=Thu, 09-Mar-2017 10:16:59 GMT
; Set-Cookie: _lcp=8ee4121c9866435007fff2c90dc31a4d; domain=.mixi.jp; expires=Wed, 11-Mar-2015 10:16:59 GMT
; X-Content-Type-Options: nosniff
;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
“‘

### Basic Authorization

“‘common-lisp
(dex:head "http://www.hatena.ne.jp/" :basic-auth ’("nitro_idiot" . "password") :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; HEAD / HTTP/1.1
; User-Agent: Dexador/0.1 (SBCL 1.2.9); Darwin; 14.1.0
; Host: www.hatena.ne.jp
; Accept: */*
; Authorization: Basic bml0cm9faWRpb3Q6cGFzc3dvcmQ=
;
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
“‘

### Faking a User-Agent header

You can overwrite the default User-Agent header by simply specifying "User-Agent" in ‘:headers‘.

“‘common-lisp
(dex:head "http://www.sbcl.org/" :verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; HEAD / HTTP/1.1
; User-Agent: Dexador/0.1 (SBCL 1.2.6); Darwin; 14.1.0
; Host: www.sbcl.org
; Accept: */*
;
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

(dex:head "http://www.sbcl.org/"
:headers ’(("User-Agent" . "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18"))
:verbose t)
;-> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; HEAD / HTTP/1.1
; User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18
; Host: www.sbcl.org
; Accept: */*
;
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
“‘

### Reusing a connection

Dexador reuses a connection by default. As it skips a TCP handshake, it would be much faster when you send requests to the same host continuously.

### Handling unexpected HTTP status code

Dexador singals a condition ‘http-request-failed‘ when the server returned 4xx or 5xx status code.

“‘common-lisp
;; Handles 400 bad request
(handler-case (dex:get "http://lisp.org")
(dex:http-request-bad-request ()
;; Runs when 400 bad request returned
)
(dex:http-request-failed (e)
;; For other 4xx or 5xx
(format *error-output* "The server returned ~D" (dex:response-status e))))

;; Ignore 404 Not Found and continue
(handler-bind ((dex:http-request-not-found #’dex:ignore-and-continue))
(dex:get "http://lisp.org"))

;; Retry
(handler-bind ((dex:http-request-failed #’dex:retry-request))
(dex:get "http://lisp.org"))

;; Retry 5 times
(handler-bind ((dex:http-request-failed (dex:retry-request 5 :interval 3)))
(dex:get "http://lisp.org"))
“‘

### Proxy

You can connect via proxy.

“‘common-lisp
(dex:get "http://lisp.org/" :proxy "http://proxy.yourcompany.com:8080/")
“‘

## Functions

All functions take similar arguments.

- ‘uri‘ (string or quri:uri)
- ‘method‘ (keyword)
- The HTTP request method: ‘:GET‘, ‘:HEAD‘, ‘:OPTIONS‘, ‘:PUT‘, ‘:POST‘, or ‘:DELETE‘. The default is ‘:GET‘.
- ‘version‘ (number)
- The version of the HTTP protocol: typically ‘1.0‘ or ‘1.1‘. The default is ‘1.1‘.
- ‘content‘ (string, alist or pathname)
- The body of the request.
- ‘headers‘ (alist)
- The headers of the request. If the value of a pair is ‘NIL‘, the header won’t be sent. You can overwrite the default headers (Host, User-Agent and Accept) by this with the same header name.
- ‘basic-auth‘ (cons of username and password)
- Username and password for basic authorization. This is a cons having username at car and password at cdr. (e.g. ‘’("foo" . "bar")‘)
- ‘cookie-jar‘ (cookie-jar of [cl-cookie](https://github.com/fukamachi/cl-cookie))
- A cookie jar object.
- ‘timeout‘ (fixnum)
- The seconds to timeout of the HTTP connection. The default is ‘10‘, the value of ‘*default-timeout*‘.
- ‘keep-alive‘ (boolean)
- A flag if the connection keep connected even after the HTTP request. The default is ‘NIL‘.
- ‘use-connection-pool‘ (boolean)
- A flag if use a connection pool.
- ‘max-redirects‘ (fixnum)
- The limit of redirections. The default is ‘5‘. If the redirection exceeds the limit, functions return the last response (not raise a condition).
- ‘force-binary‘ (boolean)
- A flag for suppressing auto-decoding of the response body.
- ‘want-stream‘ (boolean)
- A flag to get the response body as a stream.
- ‘ssl-key-file‘, ‘ssl-cert-file‘, ‘ssl-key-password‘
- for HTTPS connection
- ‘stream‘
- The stream to write an HTTP request. This is the way to reuse a connection and commonly used with ‘:keep-alive T‘.
- ‘verbose‘ (boolean)
- This option is for debugging. If this is ‘T‘, it dumps the HTTP request headers.
- ‘proxy‘ (string)
- for use proxy.

### \[Function\] request

“‘common-lisp
(dex:request uri &key method version content headers basic-auth cookie-jar timeout
(keep-alive t) (use-connection-pool t) (max-redirects 5)
ssl-key-file ssl-cert-file ssl-key-password
stream verbose force-binary want-stream proxy)
;=> body
; status
; response-headers
; uri
; stream
“‘

Send an HTTP request to ‘uri‘.

The ‘body‘ is an octet vector or a string if the ‘Content-Type‘ is ‘text/*‘. If you always want it to return an octet vector, specify ‘:force-binary‘ as ‘T‘.

The ‘status‘ is an integer which represents HTTP status code.

The ‘response-headers‘ is a hash table which represents HTTP response headers. Note that all hash keys are downcased like "content-type". If there’s duplicate HTTP headers, those values are concatenated with a comma.

The ‘uri‘ is a [QURI](https://github.com/fukamachi/quri) object which represents the last URI Dexador requested.

The ‘stream‘ is a usocket stream to communicate with the HTTP server if the connection is still alive and can be reused. This value may be ‘NIL‘ if ‘:keep-alive‘ is ‘NIL‘ or the server closed the connection with ‘Connection: close‘ header.

This function signals ‘http-request-failed‘ when the HTTP status code is 4xx or 5xx.

### \[Function\] get

“‘common-lisp
(dex:get uri &key version headers basic-auth cookie-jar keep-alive timeout max-redirects force-binary want-stream
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] post

“‘common-lisp
(dex:post uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] head

“‘common-lisp
(dex:head uri &key version headers cookie-jar timeout max-redirects
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] put

“‘common-lisp
(dex:put uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] patch

“‘common-lisp
(dex:patch uri &key version headers content cookie-jar keep-alive timeout force-binary want-stream
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] delete

“‘common-lisp
(dex:delete uri &key version headers cookie-jar keep-alive timeout force-binary want-stream
ssl-key-file ssl-cert-file ssl-key-password
stream verbose proxy)
“‘

### \[Function\] fetch

Send a GET request to ‘URI‘ and write the response body to the ‘DESTINATION‘.

“‘common-lisp
(dex:fetch uri destination &key if-exists verbose proxy)
“‘

## Benchmark

![Benchmark graph](images/benchmark.png)

* Server
* Sakura VPS 1GB
* nginx 1.2.7, KeepAlive On
* Client
* MacBook Pro OS X Yosemite (CPU: 3GHz Intel Core i7, Memory: 8GB)
* SBCL 1.2.9
* Downloads an HTML file (181 bytes).

### Drakma

“‘
(time (dotimes (i 30) (drakma:http-request "http://files.8arrow.org/181B.html")))
Evaluation took:
1.012 seconds of real time
0.174742 seconds of total run time (0.148141 user, 0.026601 system)
17.29% CPU
1,683 forms interpreted
500 lambdas converted
3,027,928,949 processor cycles
29,416,656 bytes consed
“‘

### Dexador

“‘
(time (dotimes (i 30) (dex:get "http://files.8arrow.org/181B.html")))
Evaluation took:
0.499 seconds of real time
0.028057 seconds of total run time (0.019234 user, 0.008823 system)
5.61% CPU
56 forms interpreted
16 lambdas converted
1,494,851,690 processor cycles
1,472,992 bytes consed
“‘

## See Also

* [fast-http](https://github.com/fukamachi/fast-http)
* [cl-cookie](https://github.com/fukamachi/cl-cookie)
* [QURI](https://github.com/fukamachi/quri)

## Author

* Eitaro Fukamachi (e.arrows@gmail.com)

## Copyright

Copyright (c) 2015 Eitaro Fukamachi (e.arrows@gmail.com)

## License

Licensed under the MIT License.

Version

0.9.10

Dependencies
Source

dexador.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 dexador/src

Parent

dexador (system)

Location

src/

Components

Previous: , Up: Modules   [Contents][Index]

3.2 dexador/src/backend

Dependencies
Parent

src (module)

Location

src/backend/

Component

usocket.lisp (file)


Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 dexador.asd

Location

dexador.asd

Systems

dexador (system)

Packages

dexador-asd


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 dexador/src/dexador.lisp

Dependencies
Parent

src (module)

Location

src/dexador.lisp

Packages

dexador

Exported Definitions
Internal Definitions

retry-request-ntimes (function)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 dexador/src/encoding.lisp

Parent

src (module)

Location

src/encoding.lisp

Packages

dexador.encoding

Exported Definitions

detect-charset (function)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 dexador/src/connection-cache.lisp

Parent

src (module)

Location

src/connection-cache.lisp

Packages

dexador.connection-cache

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 dexador/src/decoding-stream.lisp

Parent

src (module)

Location

src/decoding-stream.lisp

Packages

dexador.decoding-stream

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 dexador/src/keep-alive-stream.lisp

Parent

src (module)

Location

src/keep-alive-stream.lisp

Packages

dexador.keep-alive-stream

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 dexador/src/error.lisp

Parent

src (module)

Location

src/error.lisp

Packages

dexador.error

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 dexador/src/util.lisp

Parent

src (module)

Location

src/util.lisp

Packages

dexador.util

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.9 dexador/src/backend/usocket.lisp

Parent

backend (module)

Location

src/backend/usocket.lisp

Packages

dexador.backend.usocket

Exported Definitions

request (function)

Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 dexador-asd

Source

dexador.asd

Use List

Next: , Previous: , Up: Packages   [Contents][Index]

5.2 dexador

Source

dexador.lisp (file)

Nickname

dex

Use List

common-lisp

Exported Definitions
Internal Definitions

retry-request-ntimes (function)


Next: , Previous: , Up: Packages   [Contents][Index]

5.3 dexador.encoding

Source

encoding.lisp (file)

Use List

common-lisp

Used By List

dexador.backend.usocket

Exported Definitions

detect-charset (function)

Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.4 dexador.connection-cache

Source

connection-cache.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.5 dexador.decoding-stream

Provides character decoding stream.
Similar to flexi-input-stream, except this uses Babel for decoding.

Source

decoding-stream.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.6 dexador.keep-alive-stream

Source

keep-alive-stream.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.7 dexador.error

Source

error.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Packages   [Contents][Index]

5.8 dexador.util

Source

util.lisp (file)

Use List

common-lisp

Used By List

dexador.backend.usocket

Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.9 dexador.backend.usocket

Source

usocket.lisp (file)

Nickname

dex.usocket

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Special variables

Special Variable: *connection-pool*
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Special Variable: *default-timeout*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *default-user-agent*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *not-verify-ssl*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *use-connection-pool*
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Special Variable: *verbose*
Package

dexador.util

Source

util.lisp (file)

Special Variable: +crlf+
Package

dexador.util

Source

util.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Macros

Macro: defun-careful NAME LAMBDA-LIST &body BODY
Package

dexador.util

Source

util.lisp (file)

Macro: defun-speedy NAME LAMBDA-LIST &body BODY
Package

dexador.util

Source

util.lisp (file)

Macro: with-header-output (BUFFER &optional OUTPUT) &body BODY
Package

dexador.util

Source

util.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Compiler macros

Compiler Macro: ascii-string-to-octets STRING
Package

dexador.util

Source

util.lisp (file)

Compiler Macro: write-header NAME VALUE &optional BUFFER
Package

dexador.util

Source

util.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Functions

Function: ascii-string-to-octets STRING
Package

dexador.util

Source

util.lisp (file)

Function: clear-connection-pool ()
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: delete URI &rest ARGS &key VERSION HEADERS BASIC-AUTH COOKIE-JAR KEEP-ALIVE USE-CONNECTION-POOL TIMEOUT FORCE-BINARY WANT-STREAM SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: detect-charset CONTENT-TYPE BODY
Package

dexador.encoding

Source

encoding.lisp (file)

Function: fetch URI DESTINATION &key IF-EXISTS VERBOSE PROXY INSECURE
Package

dexador

Source

dexador.lisp (file)

Function: get URI &rest ARGS &key VERSION HEADERS BASIC-AUTH COOKIE-JAR KEEP-ALIVE USE-CONNECTION-POOL TIMEOUT MAX-REDIRECTS FORCE-BINARY WANT-STREAM SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: head URI &rest ARGS &key VERSION HEADERS BASIC-AUTH COOKIE-JAR TIMEOUT MAX-REDIRECTS SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: http-request-failed STATUS &key BODY HEADERS URI METHOD
Package

dexador.error

Source

error.lisp (file)

Function: ignore-and-continue E
Package

dexador.backend.usocket

Source

dexador.lisp (file)

Function: make-connection-pool ()
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: make-decoding-stream STREAM &key ENCODING
Package

dexador.decoding-stream

Source

decoding-stream.lisp (file)

Function: make-keep-alive-stream STREAM &key END CHUNKED
Package

dexador.keep-alive-stream

Source

keep-alive-stream.lisp (file)

Function: make-random-string &optional LENGTH
Package

dexador.util

Source

util.lisp (file)

Function: patch URI &rest ARGS &key VERSION CONTENT HEADERS BASIC-AUTH COOKIE-JAR KEEP-ALIVE USE-CONNECTION-POOL TIMEOUT FORCE-BINARY WANT-STREAM SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: post URI &rest ARGS &key VERSION CONTENT HEADERS BASIC-AUTH COOKIE-JAR KEEP-ALIVE USE-CONNECTION-POOL TIMEOUT FORCE-BINARY WANT-STREAM SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: push-connection HOST-PORT SOCKET
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: put URI &rest ARGS &key VERSION CONTENT HEADERS BASIC-AUTH COOKIE-JAR KEEP-ALIVE USE-CONNECTION-POOL TIMEOUT FORCE-BINARY WANT-STREAM SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE PROXY INSECURE CA-PATH
Package

dexador

Source

dexador.lisp (file)

Function: request URI &rest ARGS &key METHOD VERSION CONTENT HEADERS BASIC-AUTH COOKIE-JAR TIMEOUT KEEP-ALIVE USE-CONNECTION-POOL MAX-REDIRECTS SSL-KEY-FILE SSL-CERT-FILE SSL-KEY-PASSWORD STREAM VERBOSE FORCE-BINARY WANT-STREAM PROXY INSECURE CA-PATH
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: retry-request TIMES &key INTERVAL
Package

dexador.backend.usocket

Source

dexador.lisp (file)

Function: steal-connection HOST-PORT
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: write-connect-header URI VERSION BUFFER
Package

dexador.util

Source

util.lisp (file)

Function: write-first-line METHOD URI PROXY VERSION &optional BUFFER
Package

dexador.util

Source

util.lisp (file)

Function: write-header NAME VALUE &optional BUFFER
Package

dexador.util

Source

util.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 Generic functions

Generic Function: request-method CONDITION
Package

dexador.error

Methods
Method: request-method (CONDITION http-request-failed)
Source

error.lisp (file)

Generic Function: request-uri CONDITION
Package

dexador.error

Methods
Method: request-uri (CONDITION http-request-failed)
Source

error.lisp (file)

Generic Function: response-body CONDITION
Package

dexador.error

Methods
Method: response-body (CONDITION http-request-failed)
Source

error.lisp (file)

Generic Function: response-headers CONDITION
Package

dexador.error

Methods
Method: response-headers (CONDITION http-request-failed)
Source

error.lisp (file)

Generic Function: response-status CONDITION
Package

dexador.error

Methods
Method: response-status (CONDITION http-request-failed)
Source

error.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.6 Conditions

Condition: http-request-bad-gateway ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-bad-request ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-conflict ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-expectation-failed ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-failed ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

error (condition)

Direct subclasses
Direct methods
Direct slots
Slot: body
Initargs

:body

Readers

response-body (generic function)

Slot: status
Initargs

:status

Readers

response-status (generic function)

Slot: headers
Initargs

:headers

Readers

response-headers (generic function)

Slot: uri
Initargs

:uri

Readers

request-uri (generic function)

Slot: method
Initargs

:method

Readers

request-method (generic function)

Condition: http-request-forbidden ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-gateway-timeout ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-gone ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-http-version-not-supported ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-internal-server-error ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-length-required ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-method-not-allowed ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-misdirected-request ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-not-acceptable ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-not-found ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-not-implemented ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-payload-too-large ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-payment-required ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-precondition-failed ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-proxy-authentication-required ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-range-not-satisfiable ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-request-timeout ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-service-unavailable ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-unauthorized ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-unsupported-media-type ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-upgrade-required ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)

Condition: http-request-uri-too-long ()
Package

dexador.error

Source

error.lisp (file)

Direct superclasses

http-request-failed (condition)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.7 Classes

Class: decoding-stream ()
Package

dexador.decoding-stream

Source

decoding-stream.lisp (file)

Direct superclasses

fundamental-character-input-stream (class)

Direct methods
Direct slots
Slot: stream
Type

stream

Initargs

:stream

Initform

(error ":stream is required")

Readers

decoding-stream-stream (generic function)

Writers

(setf decoding-stream-stream) (generic function)

Slot: encoding
Initargs

:encoding

Initform

(error ":encoding is required")

Readers

decoding-stream-encoding (generic function)

Writers

(setf decoding-stream-encoding) (generic function)

Slot: buffer
Type

(simple-array (unsigned-byte 8) (128))

Initform

(make-array dexador.decoding-stream::+buffer-size+ :element-type (quote (unsigned-byte 8)))

Readers

decoding-stream-buffer (generic function)

Writers

(setf decoding-stream-buffer) (generic function)

Slot: buffer-position
Type

fixnum

Initform

dexador.decoding-stream::+buffer-size+

Readers

decoding-stream-buffer-position (generic function)

Writers

(setf decoding-stream-buffer-position) (generic function)

Slot: buffer-end-position
Type

fixnum

Initform

-1

Readers

decoding-stream-buffer-end-position (generic function)

Writers

(setf decoding-stream-buffer-end-position) (generic function)

Slot: last-char
Type

character

Initform

#\nul

Readers

decoding-stream-last-char (generic function)

Writers

(setf decoding-stream-last-char) (generic function)

Slot: last-char-size
Type

fixnum

Initform

0

Readers

decoding-stream-last-char-size (generic function)

Writers

(setf decoding-stream-last-char-size) (generic function)

Class: keep-alive-chunked-stream ()
Package

dexador.keep-alive-stream

Source

keep-alive-stream.lisp (file)

Direct superclasses

keep-alive-stream (class)

Direct methods
  • stream-read-sequence (method)
  • stream-read-byte (method)
Direct slots
Slot: state
Type

fixnum

Initargs

:state

Initform

-1

Class: keep-alive-stream ()
Package

dexador.keep-alive-stream

Source

keep-alive-stream.lisp (file)

Direct superclasses

fundamental-input-stream (class)

Direct subclasses

keep-alive-chunked-stream (class)

Direct methods
  • close (method)
  • open-stream-p (method)
  • stream-element-type (method)
  • stream-read-sequence (method)
  • keep-alive-stream-end (method)
  • keep-alive-stream-end (method)
  • keep-alive-stream-stream (method)
  • keep-alive-stream-stream (method)
Direct slots
Slot: stream
Type

stream

Initargs

:stream

Initform

(error ":stream is required")

Readers

keep-alive-stream-stream (generic function)

Writers

(setf keep-alive-stream-stream) (generic function)

Slot: end
Initargs

:end

Readers

keep-alive-stream-end (generic function)

Writers

(setf keep-alive-stream-end) (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.8 Types

Type: octets &optional LEN
Package

dexador.util

Source

util.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Constants

Constant: +buffer-size+
Package

dexador.decoding-stream

Source

decoding-stream.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Special variables

Special Variable: *ca-bundle*
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Special Variable: *careful-declaration*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *dexador-version*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *header-buffer*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *request-failed-error*
Package

dexador.error

Source

error.lisp (file)

Special Variable: *speedy-declaration*
Package

dexador.util

Source

util.lisp (file)

Special Variable: *threads-connection-pool*
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Special Variable: +empty-body+
Package

dexador.backend.usocket

Source

usocket.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 Macros

Macro: define-request-failed-condition NAME CODE
Package

dexador.error

Source

error.lisp (file)

Macro: with-restarts &body BODY
Package

dexador.backend.usocket

Source

usocket.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Functions

Function: %ascii-string-to-octets STRING
Package

dexador.util

Source

util.lisp (file)

Function: build-cookie-headers URI COOKIE-JAR
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: charset-to-encoding CHARSET &optional DEFAULT
Package

dexador.encoding

Source

encoding.lisp (file)

Function: content-disposition KEY VAL
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: convert-body BODY CONTENT-ENCODING CONTENT-TYPE CONTENT-LENGTH CHUNKEDP FORCE-BINARY KEEP-ALIVE-P
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: decode-body CONTENT-TYPE BODY
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: decompress-body CONTENT-ENCODING BODY
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: detect-charset-from-html BODY

Detect the body’s charset by (roughly) searching meta tags which has "charset" attribute.

Package

dexador.encoding

Source

encoding.lisp (file)

Function: fill-buffer STREAM
Package

dexador.decoding-stream

Source

decoding-stream.lisp (file)

Function: get-connection-pool ()
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: initialize-threads-connection-pool ()
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: make-connect-stream URI VERSION STREAM
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: make-threads-connection-pool ()
Package

dexador.connection-cache

Source

connection-cache.lisp (file)

Function: multipart-content-length CONTENT BOUNDARY
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: needs-to-fill-buffer-p STREAM
Package

dexador.decoding-stream

Source

decoding-stream.lisp (file)

Function: parse-content-type CONTENT-TYPE
Package

dexador.encoding

Source

encoding.lisp (file)

Function: print-verbose-data DIRECTION &rest DATA
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: read-response STREAM HAS-BODY COLLECT-HEADERS READ-BODY
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: read-until-crlf*2 STREAM
Package

dexador.backend.usocket

Source

usocket.lisp (file)

Function: retry-request-ntimes N &key INTERVAL
Package

dexador

Source

dexador.lisp (file)

Function: write-header-field NAME BUFFER
Package

dexador.util

Source

util.lisp (file)

Function: write-header-value VALUE BUFFER
Package

dexador.util

Source

util.lisp (file)

Function: write-multipart-content CONTENT BOUNDARY STREAM
Package

dexador.backend.usocket

Source

usocket.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Generic functions

Generic Function: decoding-stream-buffer OBJECT
Generic Function: (setf decoding-stream-buffer) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-buffer (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-buffer) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-buffer-end-position OBJECT
Generic Function: (setf decoding-stream-buffer-end-position) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-buffer-end-position (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-buffer-end-position) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-buffer-position OBJECT
Generic Function: (setf decoding-stream-buffer-position) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-buffer-position (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-buffer-position) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-encoding OBJECT
Generic Function: (setf decoding-stream-encoding) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-encoding (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-encoding) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-last-char OBJECT
Generic Function: (setf decoding-stream-last-char) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-last-char (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-last-char) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-last-char-size OBJECT
Generic Function: (setf decoding-stream-last-char-size) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-last-char-size (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-last-char-size) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: decoding-stream-stream OBJECT
Generic Function: (setf decoding-stream-stream) NEW-VALUE OBJECT
Package

dexador.decoding-stream

Methods
Method: decoding-stream-stream (DECODING-STREAM decoding-stream)

automatically generated reader method

Source

decoding-stream.lisp (file)

Method: (setf decoding-stream-stream) NEW-VALUE (DECODING-STREAM decoding-stream)

automatically generated writer method

Source

decoding-stream.lisp (file)

Generic Function: keep-alive-stream-end OBJECT
Generic Function: (setf keep-alive-stream-end) NEW-VALUE OBJECT
Package

dexador.keep-alive-stream

Methods
Method: keep-alive-stream-end (KEEP-ALIVE-STREAM keep-alive-stream)

automatically generated reader method

Source

keep-alive-stream.lisp (file)

Method: (setf keep-alive-stream-end) NEW-VALUE (KEEP-ALIVE-STREAM keep-alive-stream)

automatically generated writer method

Source

keep-alive-stream.lisp (file)

Generic Function: keep-alive-stream-stream OBJECT
Generic Function: (setf keep-alive-stream-stream) NEW-VALUE OBJECT
Package

dexador.keep-alive-stream

Methods
Method: keep-alive-stream-stream (KEEP-ALIVE-STREAM keep-alive-stream)

automatically generated reader method

Source

keep-alive-stream.lisp (file)

Method: (setf keep-alive-stream-stream) NEW-VALUE (KEEP-ALIVE-STREAM keep-alive-stream)

automatically generated writer method

Source

keep-alive-stream.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   D   F   L   M  
Index Entry  Section

D
dexador.asd: The dexador<dot>asd file
dexador/src: The dexador/src module
dexador/src/backend: The dexador/src/backend module
dexador/src/backend/usocket.lisp: The dexador/src/backend/usocket<dot>lisp file
dexador/src/connection-cache.lisp: The dexador/src/connection-cache<dot>lisp file
dexador/src/decoding-stream.lisp: The dexador/src/decoding-stream<dot>lisp file
dexador/src/dexador.lisp: The dexador/src/dexador<dot>lisp file
dexador/src/encoding.lisp: The dexador/src/encoding<dot>lisp file
dexador/src/error.lisp: The dexador/src/error<dot>lisp file
dexador/src/keep-alive-stream.lisp: The dexador/src/keep-alive-stream<dot>lisp file
dexador/src/util.lisp: The dexador/src/util<dot>lisp file

F
File, Lisp, dexador.asd: The dexador<dot>asd file
File, Lisp, dexador/src/backend/usocket.lisp: The dexador/src/backend/usocket<dot>lisp file
File, Lisp, dexador/src/connection-cache.lisp: The dexador/src/connection-cache<dot>lisp file
File, Lisp, dexador/src/decoding-stream.lisp: The dexador/src/decoding-stream<dot>lisp file
File, Lisp, dexador/src/dexador.lisp: The dexador/src/dexador<dot>lisp file
File, Lisp, dexador/src/encoding.lisp: The dexador/src/encoding<dot>lisp file
File, Lisp, dexador/src/error.lisp: The dexador/src/error<dot>lisp file
File, Lisp, dexador/src/keep-alive-stream.lisp: The dexador/src/keep-alive-stream<dot>lisp file
File, Lisp, dexador/src/util.lisp: The dexador/src/util<dot>lisp file

L
Lisp File, dexador.asd: The dexador<dot>asd file
Lisp File, dexador/src/backend/usocket.lisp: The dexador/src/backend/usocket<dot>lisp file
Lisp File, dexador/src/connection-cache.lisp: The dexador/src/connection-cache<dot>lisp file
Lisp File, dexador/src/decoding-stream.lisp: The dexador/src/decoding-stream<dot>lisp file
Lisp File, dexador/src/dexador.lisp: The dexador/src/dexador<dot>lisp file
Lisp File, dexador/src/encoding.lisp: The dexador/src/encoding<dot>lisp file
Lisp File, dexador/src/error.lisp: The dexador/src/error<dot>lisp file
Lisp File, dexador/src/keep-alive-stream.lisp: The dexador/src/keep-alive-stream<dot>lisp file
Lisp File, dexador/src/util.lisp: The dexador/src/util<dot>lisp file

M
Module, dexador/src: The dexador/src module
Module, dexador/src/backend: The dexador/src/backend module

Jump to:   D   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
A   B   C   D   F   G   H   I   K   M   N   P   R   S   W  
Index Entry  Section

%
%ascii-string-to-octets: Internal functions

(
(setf decoding-stream-buffer): Internal generic functions
(setf decoding-stream-buffer): Internal generic functions
(setf decoding-stream-buffer-end-position): Internal generic functions
(setf decoding-stream-buffer-end-position): Internal generic functions
(setf decoding-stream-buffer-position): Internal generic functions
(setf decoding-stream-buffer-position): Internal generic functions
(setf decoding-stream-encoding): Internal generic functions
(setf decoding-stream-encoding): Internal generic functions
(setf decoding-stream-last-char): Internal generic functions
(setf decoding-stream-last-char): Internal generic functions
(setf decoding-stream-last-char-size): Internal generic functions
(setf decoding-stream-last-char-size): Internal generic functions
(setf decoding-stream-stream): Internal generic functions
(setf decoding-stream-stream): Internal generic functions
(setf keep-alive-stream-end): Internal generic functions
(setf keep-alive-stream-end): Internal generic functions
(setf keep-alive-stream-stream): Internal generic functions
(setf keep-alive-stream-stream): Internal generic functions

A
ascii-string-to-octets: Exported compiler macros
ascii-string-to-octets: Exported functions

B
build-cookie-headers: Internal functions

C
charset-to-encoding: Internal functions
clear-connection-pool: Exported functions
Compiler Macro, ascii-string-to-octets: Exported compiler macros
Compiler Macro, write-header: Exported compiler macros
content-disposition: Internal functions
convert-body: Internal functions

D
decode-body: Internal functions
decoding-stream-buffer: Internal generic functions
decoding-stream-buffer: Internal generic functions
decoding-stream-buffer-end-position: Internal generic functions
decoding-stream-buffer-end-position: Internal generic functions
decoding-stream-buffer-position: Internal generic functions
decoding-stream-buffer-position: Internal generic functions
decoding-stream-encoding: Internal generic functions
decoding-stream-encoding: Internal generic functions
decoding-stream-last-char: Internal generic functions
decoding-stream-last-char: Internal generic functions
decoding-stream-last-char-size: Internal generic functions
decoding-stream-last-char-size: Internal generic functions
decoding-stream-stream: Internal generic functions
decoding-stream-stream: Internal generic functions
decompress-body: Internal functions
define-request-failed-condition: Internal macros
defun-careful: Exported macros
defun-speedy: Exported macros
delete: Exported functions
detect-charset: Exported functions
detect-charset-from-html: Internal functions

F
fetch: Exported functions
fill-buffer: Internal functions
Function, %ascii-string-to-octets: Internal functions
Function, ascii-string-to-octets: Exported functions
Function, build-cookie-headers: Internal functions
Function, charset-to-encoding: Internal functions
Function, clear-connection-pool: Exported functions
Function, content-disposition: Internal functions
Function, convert-body: Internal functions
Function, decode-body: Internal functions
Function, decompress-body: Internal functions
Function, delete: Exported functions
Function, detect-charset: Exported functions
Function, detect-charset-from-html: Internal functions
Function, fetch: Exported functions
Function, fill-buffer: Internal functions
Function, get: Exported functions
Function, get-connection-pool: Internal functions
Function, head: Exported functions
Function, http-request-failed: Exported functions
Function, ignore-and-continue: Exported functions
Function, initialize-threads-connection-pool: Internal functions
Function, make-connect-stream: Internal functions
Function, make-connection-pool: Exported functions
Function, make-decoding-stream: Exported functions
Function, make-keep-alive-stream: Exported functions
Function, make-random-string: Exported functions
Function, make-threads-connection-pool: Internal functions
Function, multipart-content-length: Internal functions
Function, needs-to-fill-buffer-p: Internal functions
Function, parse-content-type: Internal functions
Function, patch: Exported functions
Function, post: Exported functions
Function, print-verbose-data: Internal functions
Function, push-connection: Exported functions
Function, put: Exported functions
Function, read-response: Internal functions
Function, read-until-crlf*2: Internal functions
Function, request: Exported functions
Function, retry-request: Exported functions
Function, retry-request-ntimes: Internal functions
Function, steal-connection: Exported functions
Function, write-connect-header: Exported functions
Function, write-first-line: Exported functions
Function, write-header: Exported functions
Function, write-header-field: Internal functions
Function, write-header-value: Internal functions
Function, write-multipart-content: Internal functions

G
Generic Function, (setf decoding-stream-buffer): Internal generic functions
Generic Function, (setf decoding-stream-buffer-end-position): Internal generic functions
Generic Function, (setf decoding-stream-buffer-position): Internal generic functions
Generic Function, (setf decoding-stream-encoding): Internal generic functions
Generic Function, (setf decoding-stream-last-char): Internal generic functions
Generic Function, (setf decoding-stream-last-char-size): Internal generic functions
Generic Function, (setf decoding-stream-stream): Internal generic functions
Generic Function, (setf keep-alive-stream-end): Internal generic functions
Generic Function, (setf keep-alive-stream-stream): Internal generic functions
Generic Function, decoding-stream-buffer: Internal generic functions
Generic Function, decoding-stream-buffer-end-position: Internal generic functions
Generic Function, decoding-stream-buffer-position: Internal generic functions
Generic Function, decoding-stream-encoding: Internal generic functions
Generic Function, decoding-stream-last-char: Internal generic functions
Generic Function, decoding-stream-last-char-size: Internal generic functions
Generic Function, decoding-stream-stream: Internal generic functions
Generic Function, keep-alive-stream-end: Internal generic functions
Generic Function, keep-alive-stream-stream: Internal generic functions
Generic Function, request-method: Exported generic functions
Generic Function, request-uri: Exported generic functions
Generic Function, response-body: Exported generic functions
Generic Function, response-headers: Exported generic functions
Generic Function, response-status: Exported generic functions
get: Exported functions
get-connection-pool: Internal functions

H
head: Exported functions
http-request-failed: Exported functions

I
ignore-and-continue: Exported functions
initialize-threads-connection-pool: Internal functions

K
keep-alive-stream-end: Internal generic functions
keep-alive-stream-end: Internal generic functions
keep-alive-stream-stream: Internal generic functions
keep-alive-stream-stream: Internal generic functions

M
Macro, define-request-failed-condition: Internal macros
Macro, defun-careful: Exported macros
Macro, defun-speedy: Exported macros
Macro, with-header-output: Exported macros
Macro, with-restarts: Internal macros
make-connect-stream: Internal functions
make-connection-pool: Exported functions
make-decoding-stream: Exported functions
make-keep-alive-stream: Exported functions
make-random-string: Exported functions
make-threads-connection-pool: Internal functions
Method, (setf decoding-stream-buffer): Internal generic functions
Method, (setf decoding-stream-buffer-end-position): Internal generic functions
Method, (setf decoding-stream-buffer-position): Internal generic functions
Method, (setf decoding-stream-encoding): Internal generic functions
Method, (setf decoding-stream-last-char): Internal generic functions
Method, (setf decoding-stream-last-char-size): Internal generic functions
Method, (setf decoding-stream-stream): Internal generic functions
Method, (setf keep-alive-stream-end): Internal generic functions
Method, (setf keep-alive-stream-stream): Internal generic functions
Method, decoding-stream-buffer: Internal generic functions
Method, decoding-stream-buffer-end-position: Internal generic functions
Method, decoding-stream-buffer-position: Internal generic functions
Method, decoding-stream-encoding: Internal generic functions
Method, decoding-stream-last-char: Internal generic functions
Method, decoding-stream-last-char-size: Internal generic functions
Method, decoding-stream-stream: Internal generic functions
Method, keep-alive-stream-end: Internal generic functions
Method, keep-alive-stream-stream: Internal generic functions
Method, request-method: Exported generic functions
Method, request-uri: Exported generic functions
Method, response-body: Exported generic functions
Method, response-headers: Exported generic functions
Method, response-status: Exported generic functions
multipart-content-length: Internal functions

N
needs-to-fill-buffer-p: Internal functions

P
parse-content-type: Internal functions
patch: Exported functions
post: Exported functions
print-verbose-data: Internal functions
push-connection: Exported functions
put: Exported functions

R
read-response: Internal functions
read-until-crlf*2: Internal functions
request: Exported functions
request-method: Exported generic functions
request-method: Exported generic functions
request-uri: Exported generic functions
request-uri: Exported generic functions
response-body: Exported generic functions
response-body: Exported generic functions
response-headers: Exported generic functions
response-headers: Exported generic functions
response-status: Exported generic functions
response-status: Exported generic functions
retry-request: Exported functions
retry-request-ntimes: Internal functions

S
steal-connection: Exported functions

W
with-header-output: Exported macros
with-restarts: Internal macros
write-connect-header: Exported functions
write-first-line: Exported functions
write-header: Exported compiler macros
write-header: Exported functions
write-header-field: Internal functions
write-header-value: Internal functions
write-multipart-content: Internal functions

Jump to:   %   (  
A   B   C   D   F   G   H   I   K   M   N   P   R   S   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
B   C   E   H   L   M   S   U  
Index Entry  Section

*
*ca-bundle*: Internal special variables
*careful-declaration*: Internal special variables
*connection-pool*: Exported special variables
*default-timeout*: Exported special variables
*default-user-agent*: Exported special variables
*dexador-version*: Internal special variables
*header-buffer*: Internal special variables
*not-verify-ssl*: Exported special variables
*request-failed-error*: Internal special variables
*speedy-declaration*: Internal special variables
*threads-connection-pool*: Internal special variables
*use-connection-pool*: Exported special variables
*verbose*: Exported special variables

+
+buffer-size+: Internal constants
+crlf+: Exported special variables
+empty-body+: Internal special variables

B
body: Exported conditions
buffer: Exported classes
buffer-end-position: Exported classes
buffer-position: Exported classes

C
Constant, +buffer-size+: Internal constants

E
encoding: Exported classes
end: Exported classes

H
headers: Exported conditions

L
last-char: Exported classes
last-char-size: Exported classes

M
method: Exported conditions

S
Slot, body: Exported conditions
Slot, buffer: Exported classes
Slot, buffer-end-position: Exported classes
Slot, buffer-position: Exported classes
Slot, encoding: Exported classes
Slot, end: Exported classes
Slot, headers: Exported conditions
Slot, last-char: Exported classes
Slot, last-char-size: Exported classes
Slot, method: Exported conditions
Slot, state: Exported classes
Slot, status: Exported conditions
Slot, stream: Exported classes
Slot, stream: Exported classes
Slot, uri: Exported conditions
Special Variable, *ca-bundle*: Internal special variables
Special Variable, *careful-declaration*: Internal special variables
Special Variable, *connection-pool*: Exported special variables
Special Variable, *default-timeout*: Exported special variables
Special Variable, *default-user-agent*: Exported special variables
Special Variable, *dexador-version*: Internal special variables
Special Variable, *header-buffer*: Internal special variables
Special Variable, *not-verify-ssl*: Exported special variables
Special Variable, *request-failed-error*: Internal special variables
Special Variable, *speedy-declaration*: Internal special variables
Special Variable, *threads-connection-pool*: Internal special variables
Special Variable, *use-connection-pool*: Exported special variables
Special Variable, *verbose*: Exported special variables
Special Variable, +crlf+: Exported special variables
Special Variable, +empty-body+: Internal special variables
state: Exported classes
status: Exported conditions
stream: Exported classes
stream: Exported classes

U
uri: Exported conditions

Jump to:   *   +  
B   C   E   H   L   M   S   U  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   H   K   O   P   S   T  
Index Entry  Section

C
Class, decoding-stream: Exported classes
Class, keep-alive-chunked-stream: Exported classes
Class, keep-alive-stream: Exported classes
Condition, http-request-bad-gateway: Exported conditions
Condition, http-request-bad-request: Exported conditions
Condition, http-request-conflict: Exported conditions
Condition, http-request-expectation-failed: Exported conditions
Condition, http-request-failed: Exported conditions
Condition, http-request-forbidden: Exported conditions
Condition, http-request-gateway-timeout: Exported conditions
Condition, http-request-gone: Exported conditions
Condition, http-request-http-version-not-supported: Exported conditions
Condition, http-request-internal-server-error: Exported conditions
Condition, http-request-length-required: Exported conditions
Condition, http-request-method-not-allowed: Exported conditions
Condition, http-request-misdirected-request: Exported conditions
Condition, http-request-not-acceptable: Exported conditions
Condition, http-request-not-found: Exported conditions
Condition, http-request-not-implemented: Exported conditions
Condition, http-request-payload-too-large: Exported conditions
Condition, http-request-payment-required: Exported conditions
Condition, http-request-precondition-failed: Exported conditions
Condition, http-request-proxy-authentication-required: Exported conditions
Condition, http-request-range-not-satisfiable: Exported conditions
Condition, http-request-request-timeout: Exported conditions
Condition, http-request-service-unavailable: Exported conditions
Condition, http-request-unauthorized: Exported conditions
Condition, http-request-unsupported-media-type: Exported conditions
Condition, http-request-upgrade-required: Exported conditions
Condition, http-request-uri-too-long: Exported conditions

D
decoding-stream: Exported classes
dexador: The dexador system
dexador: The dexador package
dexador-asd: The dexador-asd package
dexador.backend.usocket: The dexador<dot>backend<dot>usocket package
dexador.connection-cache: The dexador<dot>connection-cache package
dexador.decoding-stream: The dexador<dot>decoding-stream package
dexador.encoding: The dexador<dot>encoding package
dexador.error: The dexador<dot>error package
dexador.keep-alive-stream: The dexador<dot>keep-alive-stream package
dexador.util: The dexador<dot>util package

H
http-request-bad-gateway: Exported conditions
http-request-bad-request: Exported conditions
http-request-conflict: Exported conditions
http-request-expectation-failed: Exported conditions
http-request-failed: Exported conditions
http-request-forbidden: Exported conditions
http-request-gateway-timeout: Exported conditions
http-request-gone: Exported conditions
http-request-http-version-not-supported: Exported conditions
http-request-internal-server-error: Exported conditions
http-request-length-required: Exported conditions
http-request-method-not-allowed: Exported conditions
http-request-misdirected-request: Exported conditions
http-request-not-acceptable: Exported conditions
http-request-not-found: Exported conditions
http-request-not-implemented: Exported conditions
http-request-payload-too-large: Exported conditions
http-request-payment-required: Exported conditions
http-request-precondition-failed: Exported conditions
http-request-proxy-authentication-required: Exported conditions
http-request-range-not-satisfiable: Exported conditions
http-request-request-timeout: Exported conditions
http-request-service-unavailable: Exported conditions
http-request-unauthorized: Exported conditions
http-request-unsupported-media-type: Exported conditions
http-request-upgrade-required: Exported conditions
http-request-uri-too-long: Exported conditions

K
keep-alive-chunked-stream: Exported classes
keep-alive-stream: Exported classes

O
octets: Exported types

P
Package, dexador: The dexador package
Package, dexador-asd: The dexador-asd package
Package, dexador.backend.usocket: The dexador<dot>backend<dot>usocket package
Package, dexador.connection-cache: The dexador<dot>connection-cache package
Package, dexador.decoding-stream: The dexador<dot>decoding-stream package
Package, dexador.encoding: The dexador<dot>encoding package
Package, dexador.error: The dexador<dot>error package
Package, dexador.keep-alive-stream: The dexador<dot>keep-alive-stream package
Package, dexador.util: The dexador<dot>util package

S
System, dexador: The dexador system

T
Type, octets: Exported types

Jump to:   C   D   H   K   O   P   S   T