The chillax Reference Manual

Table of Contents

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

The chillax Reference Manual

This is the chillax Reference Manual, version 0.4.1, generated automatically by Declt version 2.3 "Robert April" on Tue Jan 09 13:21:01 2018 GMT+0.


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

1 Introduction

Quickstart example

Chillax is Quicklisp-installable, allowing for super-quick, painless installation of Chillax and all its dependencies.

Make sure CouchDB is installed, and currently running. This example assumes that the server is running in localhost, using the default 5984 port. Yason's alist encoder/decoder is used below to make replies readable (by default, it uses hash tables as JSON objects, instead of alists, and strings as keys).

CL-USER> (ql:quickload 'chillax)
         ...
         ...
         ...
CL-USER> (in-package :chillax)
CHILLAX> (defparameter *server* (make-instance 'yason-server :object-as-alist-p t
                                               :parse-object-key-fun
                                               (lambda (string) (intern string *package*))))
*SERVER*
CHILLAX> (defparameter *db* (ensure-db *server* "test"))
*DB*
CHILLAX> (all-documents *db*)
((|rows|) (|offset| . 0) (|total_rows| . 0))
CHILLAX> (put-document *db* "my_test_doc" '((name . "Kat") (favorite-language . "common-lisp")))
((|rev| . "1-3c964cc898c03c48903a91d90b24a269")
 (|id| . "my_test_doc") (|ok| . T))
CHILLAX> (get-document *db* "my_test_doc")
((FAVORITE-LANGUAGE . "common-lisp")
 (NAME . "Kat")
 (|_rev| . "1-3c964cc898c03c48903a91d90b24a269")
 (|_id| . "my_test_doc"))
CHILLAX> (delete-document *db* (cdr (assoc '|_id| *)) (cdr (assoc '|_rev| *)))
((|rev| . "2-2221fc2b97c1fac1a82ba07d2835ac80")
 (|id| . "my_test_doc")
 (|ok| . T))

Introduction

Chillax is a CouchDB abstraction layer for Common Lisp. It is not an ORM or similar library, although it may be used to build such things.

Chillax also includes a CouchDB view server, which can be used to write CouchDB views in full, native Common Lisp.

Chillax includes several systems:

About this document

This README is not meant to document how to use CouchDB itself, or how to successfully design applications with it. If you're new to CouchDB, it is recommended that you follow a guide (which can be done while using Chillax).

The CouchDB Guide is recommended, and the CouchDB Wiki can be used as a general reference for CouchDB's API.

Core API

Chillax is a thin, lispy layer on top of CouchDB's RESTful API. Its main purpose is to provide Lisp functions to all of CouchDB's API calls, while translating certain things into Lisp data and concepts. For example, Chillax takes care of checking CouchDB's HTTP response codes for sanity. When error codes are returned, Chillax will signal Lisp corresponding Lisp conditions.

Additionally, Chillax is able to use any representation for CouchDB documents, provided the core Chillax protocols are implemented for that representation, i.e, you can use hash tables, alists, or instances of classes as your 'documents', and Chillax will automatically serialize/deserialize JSON communications with CouchDB according to the protocol's implementation.

Note that, since Chillax really is just a thin layer, it abstracts very little beyond the above. Most Chillax functions will simply return the de-JSON-ified CouchDB responses, and leave you to digging through the response objects for the data you need.

Server API

Chillax's Server API provides access to server-level functionality. Server objects not only give access to these database-independent features, but also act as mediators for all data that goes through Chillax. Chillax's server objects are in charge, for example, of translating CouchDB's JSON responses to and from whatever data format the user has chosen to use Lisp-side.

Server objects are created through appropriate protocol implementations. See STANDARD-SERVER, and YASON-SERVER below for the included implementations. Additional or alternate functionality for serialization can easily be implemented through Chillax's server protocol.

[function] server-uri server

Returns a string representation of the URL SERVER represents.

[function] all-dbs server

Requests a list of all existing databases from SERVER.

[function] config-info server

Requests the current configuration from SERVER.

[function] replicate server target &key create-target-p continuousp

Replicates the database in SOURCE to TARGET. SOURCE and TARGET can both be either database names in the local server, or full URLs to local or remote databases. If CREATE-TARGET-P is true, the target database will automatically be created if it does not exist. If CONTINUOUSP is true, CouchDB will continue propagating any changes in SOURCE to TARGET.

[function] stats server

Requests general statistics from SERVER.

[function] active-tasks server

Lists all the currently active tasks on SERVER.

[function] get-uuids server &key (number 10)

Returns a list of NUMBER unique IDs requested from SERVER. The UUIDs generated by the server are reasonably unique, but are not checked against existing UUIDs, so conflicts may still happen.

Database API

Connecting to a database in Chillax involves creating a database object with one of 3 constructors, all of which accept a server object (see Server API above), and the name of the database.

The Database API additionally provides some utility functions for accessing database-level functionality in CouchDB.

Wiki: HTTP Database API

[function] db-connect server name

Confirms that a particular CouchDB database exists. If so, returns a new database object that can be used to perform operations on it. Will signal a DB-NOT-FOUND error if the database does not already exist.

[function] db-create server name

Creates a new CouchDB database. Returns a database object that can be used to operate on it. Will signal a DB-ALREADY-EXISTS error if there is already a database with the same NAME in SERVER.

[function] ensure-db server name

Either connects to an existing database, or creates a new one. Returns two values: If a new database was created, (DB-OBJECT T) is returned. Otherwise, (DB-OBJECT NIL).

[function] db-info db

Fetches info about a given database from the CouchDB server.

[function] db-delete db

Deletes a CouchDB database.

[function] db-compact db

Triggers a database compaction.

[function] db-changes db

Returns the changes feed for DB

[function] db-uri db

Returns a string representing the full URI for DB.

Document API

All document arguments to these functions must be Lisp objects that the database's server is able to encode to JSON. These functions will likewise return Lisp objects that represent the parsed JSON responses from CouchDB. Exact representations will depend on the server being used.

Wiki: HTTP Document API

[function] get-document db id &key attachmentsp (errorpt)

Finds a CouchDB document in DB, named by ID. PARAMS should be an alist containing the parameters for the HTTP GET request. If ATTACHMENTSP is TRUE, the document's attachments will be included in their entirety in their base64-encoded version. It is not recommended you use this unless you really know what you're doing. If ERRORP is NIL, GET-DOCUMENT will simply return NIL on 404.

[function] get-document-revision db doc-id &key (errorp t)

Quickly fetches the latest revision for DOC-ID. If ERRORP is NIL, this can be used to quickly test the existence of a document.

[function] put-document db id doc &key batch-ok-p

Puts a document into DB, using ID. DOC must be Lisp data that DB's server is able to convert to JSON.

[function] post-document db doc

POSTs a document into DB. CouchDB will automatically assign a UUID if the document does not already exist. Note that using this function is discouraged in the CouchDB documentation, since it may result in duplicate documents because of proxies and other network intermediaries. If what you need is to create a new document with a generated id, consider using GET-UUIDS with PUT-DOCUMENT.

[function] delete-document db id revision

Deletes an existing document.

[function] copy-document from-id to-id &key revision

Copies a document's content in-database.

Bulk Document API

CouchDB supports a bulk document API for fetching, updating, and deleting documents in batches.

Wiki: HTTP Bulk Document API

[function] all-documents db &rest all-keys

Requests the _all_docs document. ALL-KEYS correspond to GET-DOCUMENT's keyword arguments.

[function] batch-get-documents db &rest doc-ids

Uses _all_docs to quickly fetch the given DOC-IDs in a single request. Note that this function will NOT signal a DOCUMENT-NOT-FOUND error when one or more DOC-IDs are not found. Instead, the results will be returned, and it's the user's responsibility to deal with any missing docs.

[function] bulk-post-documents documents &key all-or-nothing-p

Allows you to update or submit multiple documents at the same time, using CouchDB's _bulk_docs API. In order to delete a document through this API, the document must have a _document attribute with JSON 'true' as its value (note that what gets translated into 'true' depends on the server).

DOCUMENTS must be a sequence or sequence-like (depending on what DATA->JSON will do to it).

If ALL-OR-NOTHING-P is true, the entire submission will fail if a single one fails."

Standalone Attachment API

CouchDB has an API for uploading and downloading standalone attachments.

Wiki: Standalone Attachments

[function] put-attachment db doc-id attachment-name data &key rev content-type

Adds DATA as an attachment. DATA can be a number of things:

If the document already exists, REV is required. This function can be used on non-existent documents. If so, REV is not needed, and a document will be created automatically, and the attachment associated with it.

The CONTENT-TYPE should be a string specifying the content type for DATA. (default: "application/octet-stream")

[function] get-attachment db doc-id attachment-name

Returns 3 values:

  1. STREAM - An open flexi-stream that can be READ. In order to read straight binary data, you must first fetch the underlying stream with FLEXI-STREAMS:FLEXI-STREAM-STREAM.
  2. MUST-CLOSE-P - A boolean. If TRUE, the user must CLOSE this stream themselves once reading is done.
  3. CONTENT-LENGTH - Declared content length for the incoming data.

[function] delete-attachment db doc-id attachment-name doc-revision

Deletes an attachment from a document. DOC-REVISION must be the latest revision for the document.

[function] copy-attachment db doc-id attachment-name output-stream

Copies data from the named attachment to OUTPUT-STREAM. Returns the number of bytes copied.

Design Document API

Chillax currently includes a basic wrapper for Design Document-related operations. This API is likely to expand in the future as good ideas reveal themselves. Design documents will still need to be created through the regular document API.

Wiki: HTTP View API

[function] view-cleanup db

Invokes _view_cleanup on DB. Old view output will remain on disk until this is invoked.

[function] compact-design-doc db design-doc-name

Compaction can really help when you have very large views, very little space, or both.

[function] design-doc-info db design-doc-name

Returns an object with various bits of status information. Refer to CouchDB documentation for specifics on each value.

[function] query-view db design-doc-name view-name &key ... (see below) ...

Queries view named by VIEW-NAME in DESIGN-DOC-NAME. Keyword arguments correspond to CouchDB view query arguments.

[function] query-temporary-view db &key (map (error)) reduce (language "javascript")

Queries a temporary view. These views are meant to be for testing and development purposes, and should not be used in actual code.

Core Protocol

You can use the core protocol to customize behavior of Chillax. Writing your own implementation for this protocol is relatively simple and painless, and it allows you to do things such as use your own custom JSON encoder/decoder, if Yason doesn't fit your needs. Classes that implement the protocols, and their behavior, is documented here, as well.

For more information on the design of Chillax's protocol, refer to Chillax and Protocols.

Server Protocol

Self-explanatory readers:

[generic function] data->json server data &key

Converts DATA to JSON suitable for sending to CouchDB.

[generic function] json->data server json &key

Converts JSON to the desired data structure.

[generic function] make-db-object server name

Creates an object which represents a database connection in SERVER. The object must conform to the database protocol.

Included protocol implementations

[standard class] standard-server

Basic implementation of the server protocol. JSON data is handled literally as strings, with no conversion.

It supports the following initargs:

[standard class] yason-server

YASON-SERVERs use Yason's JSON parser/encoder to automatically translate content going to/coming from the associated CouchDB server.

YASON-SERVER is a subclass of STANDARD-SERVER, and the same initargs apply.

It additionally supports the following initargs:

[standard class] jsown-server

JSOWN-SERVERs use JSOWN's JSON parser/encoder to automatically translate content going to/coming from the associated CouchDB server.

JSOWN-SERVER is a subclass of STANDARD-SERVER, and the same initargs apply.

[function] call-with-key-container

This function is part of the chillax.jsown package.

Calls FUNCTION, which require zero arguments, in a context where CONTAINER will be used for jsown:parse-with-container.

[macro] with-key-container

This macro is part of the chillax.jsown package.

Convenience macro for call-with-key-container.

Database Protocol

[generic function] database-server database

Returns the server object with which DATABASE is associated.

[generic function] database-name database

Returns the URL-encoded name of the database, a string. Note that CouchDB accepts certain characters in database names -only- if they are URL-encoded (such as #/). It is up to individual implementations of DATABASE-NAME to implement this encoding.

Included protocol implementation

[standard class] standard-database

Minimal, class-based implementation of the database protocol.

View Server

The Chillax View Server allows you to write views in full-fledged Common Lisp. In order to use the server, you must create a binary using code loaded by chillax.view-server.asd, and make chillax-server::run-server the toplevel function.

Once you put the binary in a place visible to the CouchDB process, add the following to /etc/couchdb/local.ini (or wherever your local.ini is located):

[query_servers]
common-lisp = /path/to/chillax-view-server

Add the common-lisp entry if there's already a query_servers entry.

Once you've done this, you can start making queries directly in Lisp!

CHILLAX> (invoke-temporary-view *db* :language "common-lisp"
                                     :map (prin1-to-string '(lambda (doc) (emit doc 1))))

You can load anything you want into the view server image before dumping it, customize which package it executes views in, etc. The source code is fairly short and easy to digest. It's designed to be customizable for whatever your needs are.

Status

Currently, the view server only provides basic features. A future release of Chillax will bring it back in sync with CouchDB's current line protocol.

Yason Problem

Note that, at least on some systems, versions of Yason prior to commit 00b9a5c06b7c4113a48518a1f136637efb4458b9 will not work (in this commit, #\Return was added to the list of whitespace characters recognized). Using these versions instead of 0.1 is recommended anyway for performance reasons.

History

The original author and current maintainer/developer of Chillax is Kat Marchán; Ian McEwen subsequently worked on CLOS bindings, since the original version was written for Sheeple. Chillax has since been mostly rewritten (again) to use a simple protocol-based extension API, allowing users to easily extend or alter Chillax's behavior, with minimal code.

Contributors


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

2 Systems

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


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

2.1 chillax

Maintainer

Kat Marchán <kzm@sykosomatic.org>

Author

Kat Marchán <kzm@sykosomatic.org>

License

MIT

Description

CouchDB abstraction layer - Easy-load system with sane defaults

Version

0.4.1

Dependencies
Source

chillax.asd (file)

Component

src (module)


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

2.2 chillax.yason

Maintainer

Kat Marchán <kzm@sykosomatic.org>

Author

Kat Marchán <kzm@sykosomatic.org>

License

MIT

Description

CouchDB abstraction layer - Implementation of protocols using Yason.

Dependencies
Source

chillax.yason.asd (file)

Component

src (module)


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

2.3 chillax.core

Maintainer

Kat Marchán <kzm@sykosomatic.org>

Author

Kat Marchán <kzm@sykosomatic.org>

License

MIT

Description

CouchDB abstraction layer - core API and protocols.

Dependencies
Source

chillax.core.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 chillax/src

Parent

chillax (system)

Location

src/

Component

chillax.lisp (file)


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

3.2 chillax.yason/src

Parent

chillax.yason (system)

Location

src/

Component

yason.lisp (file)


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

3.3 chillax.core/src

Parent

chillax.core (system)

Location

src/

Components

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

3.4 chillax.core/src/core

Dependency

utils.lisp (file)

Parent

src (module)

Location

src/core/

Components

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 chillax.asd

Location

chillax.asd

Systems

chillax (system)


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

4.1.2 chillax.yason.asd

Location

chillax.yason.asd

Systems

chillax.yason (system)


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

4.1.3 chillax.core.asd

Location

chillax.core.asd

Systems

chillax.core (system)


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

4.1.4 chillax/src/chillax.lisp

Parent

src (module)

Location

src/chillax.lisp

Packages

chillax

Exported Definitions

*chillax-version* (special variable)


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

4.1.5 chillax.yason/src/yason.lisp

Parent

src (module)

Location

src/yason.lisp

Packages

chillax.yason

Exported Definitions
Internal Definitions

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

4.1.6 chillax.core/src/utils.lisp

Parent

src (module)

Location

src/utils.lisp

Packages

chillax.utils

Exported Definitions
Internal Definitions

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

4.1.7 chillax.core/src/core/package.lisp

Parent

core (module)

Location

src/core/package.lisp

Packages

chillax.core


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

4.1.8 chillax.core/src/core/server.lisp

Dependency

package.lisp (file)

Parent

core (module)

Location

src/core/server.lisp

Exported Definitions
Internal Definitions

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

4.1.9 chillax.core/src/core/database.lisp

Dependency

server.lisp (file)

Parent

core (module)

Location

src/core/database.lisp

Exported Definitions
Internal Definitions

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

4.1.10 chillax.core/src/core/document.lisp

Dependency

database.lisp (file)

Parent

core (module)

Location

src/core/document.lisp

Exported Definitions
Internal Definitions

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

4.1.11 chillax.core/src/core/design-document.lisp

Dependency

document.lisp (file)

Parent

core (module)

Location

src/core/design-document.lisp

Exported Definitions
Internal Definitions

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

5 Packages

Packages are listed by definition order.


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

5.1 chillax

Source

chillax.lisp (file)

Use List
Exported Definitions

*chillax-version* (special variable)


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

5.2 chillax.yason

Source

yason.lisp (file)

Use List
Used By List

chillax

Exported Definitions

yason-server (class)

Internal Definitions

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

5.3 chillax.utils

Source

utils.lisp (file)

Use List
Used By List

chillax.core

Exported Definitions
Internal Definitions

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

5.4 chillax.core

Source

package.lisp (file)

Use List
Used By 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: *chillax-version*
Package

chillax

Source

chillax.lisp (file)


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

6.1.2 Macros

Macro: fun &body BODY

This macro puts the FUN back in FUNCTION.

Package

chillax.utils

Source

utils.lisp (file)


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

6.1.3 Compiler macros

Compiler Macro: hashget HASH &rest KEYS
Package

chillax.utils

Source

utils.lisp (file)


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

6.1.4 Functions

Function: active-tasks SERVER

Lists all the currently active tasks on SERVER.

Package

chillax.core

Source

server.lisp (file)

Function: all-dbs SERVER

Requests a list of all existing databases from SERVER.

Package

chillax.core

Source

server.lisp (file)

Function: all-documents DB &rest ALL-KEYS

Requests the _all_docs document. ALL-KEYS correspond to GET-DOCUMENT’s keyword arguments.

Package

chillax.core

Source

document.lisp (file)

Function: batch-get-documents DB DOC-IDS

Uses _all_docs to quickly fetch the given DOC-IDs in a single request. Note that this function will NOT signal a DOCUMENT-NOT-FOUND error when one or more DOC-IDs are not found. Instead, the results will be returned, and it’s the user’s responsibility to deal with any missing docs.

Package

chillax.core

Source

document.lisp (file)

Function: bulk-post-documents DB DOCUMENTS &key ALL-OR-NOTHING-P

Allows you to update or submit multiple documents at the same time, using CouchDB’s _bulk_docs API. In order to delete a document through this API, the document must have a _document attribute with JSON ’true’ as its value (note that what gets translated into ’true’ depends on the server).

DOCUMENTS must be a sequence or sequence-like (depending on what DATA->JSON will do to it).

If ALL-OR-NOTHING-P is true, the entire submission will fail if a single one fails.

Package

chillax.core

Source

document.lisp (file)

Function: compact-design-doc DB DESIGN-DOC-NAME

Compaction can really help when you have very large views, very little space, or both.

Package

chillax.core

Source

design-document.lisp (file)

Function: config-info SERVER

Requests the current configuration from SERVER.

Package

chillax.core

Source

server.lisp (file)

Function: copy-attachment DB DOC-ID ATTACHMENT-NAME OUTPUT-STREAM &key MAX-BUFFER-SIZE

Copies data from the named attachment to OUTPUT-STREAM. Returns the number of bytes copied.

Package

chillax.core

Source

document.lisp (file)

Function: copy-document DB FROM-ID TO-ID &key REVISION

Copies a document’s content in-database.

Package

chillax.core

Source

document.lisp (file)

Function: couch-request SERVER URI &rest ALL-KEYS &key CONTENT CONVERT-DATA-P &allow-other-keys

Sends an HTTP request to the CouchDB server represented by SERVER. Most of the keyword arguments for drakma:http-request are available as kwargs for this message.

Package

chillax.core

Source

server.lisp (file)

Function: db-changes DB

Returns the changes feed for DB

Package

chillax.core

Source

database.lisp (file)

Function: db-compact DB

Triggers a database compaction.

Package

chillax.core

Source

database.lisp (file)

Function: db-connect SERVER NAME

Confirms that a particular CouchDB database exists. If so, returns a new database object that can be used to perform operations on it. Will signal a DB-NOT-FOUND error if the database does not already exist.

Package

chillax.core

Source

database.lisp (file)

Function: db-create SERVER NAME

Creates a new CouchDB database. Returns a database object that can be used to operate on it. Will signal a DB-ALREADY-EXISTS error if there is already a database with the same NAME in SERVER.

Package

chillax.core

Source

database.lisp (file)

Function: db-delete DB

Deletes a CouchDB database.

Package

chillax.core

Source

database.lisp (file)

Function: db-info DB

Fetches info about a given database from the CouchDB server.

Package

chillax.core

Source

database.lisp (file)

Function: db-uri DB

Returns a string representing the full URI for DB.

Package

chillax.core

Source

database.lisp (file)

Function: delete-attachment DB DOC-ID ATTACHMENT-NAME DOC-REVISION

Deletes an attachment from a document. DOC-REVISION must be the latest revision for the document.

Package

chillax.core

Source

document.lisp (file)

Function: delete-document DB ID REVISION

Deletes an existing document.

Package

chillax.core

Source

document.lisp (file)

Function: dequote STRING
Package

chillax.utils

Source

utils.lisp (file)

Function: design-doc-info DB DESIGN-DOC-NAME

Returns an object with various bits of status information. Refer to CouchDB documentation for specifics on each value.

Package

chillax.core

Source

design-document.lisp (file)

Function: ensure-db SERVER NAME

Either connects to an existing database, or creates a new one. Returns two values: If a new database was created, (DB-OBJECT T) is returned. Otherwise, (DB-OBJECT NIL)

Package

chillax.core

Source

database.lisp (file)

Function: get-attachment DB DOC-ID ATTACHMENT-NAME

Returns 3 values:

1. STREAM - An open flexi-stream that can be READ. In order to read straight binary data, you must first fetch the underlying stream with FLEXI-STREAMS:FLEXI-STREAM-STREAM.
2. MUST-CLOSE-P - A boolean. If TRUE, the user must CLOSE this stream themselves
once reading is done.
3. CONTENT-LENGTH - Declared content length for the incoming data.

Package

chillax.core

Source

document.lisp (file)

Function: get-document DB ID &key ATTACHMENTSP ERRORP PARAMS

Finds a CouchDB document in DB, named by ID. PARAMS should be an alist containing the parameters for the HTTP GET request. If ATTACHMENTSP is TRUE, the document’s attachments will be included in their entirety in their base64-encoded version. It is not recommended you use this unless you really know what you’re doing. If ERRORP is NIL, GET-DOCUMENT will simply return NIL on 404.

Package

chillax.core

Source

document.lisp (file)

Function: get-document-revision DB DOC-ID &key ERRORP

Quickly fetches the latest revision for DOC-ID. If ERRORP is NIL, this can be used to quickly test the existence of a document.

Package

chillax.core

Source

document.lisp (file)

Function: get-uuids SERVER &key NUMBER

Returns a list of NUMBER unique IDs requested from SERVER. The UUIDs generated by the server are reasonably unique, but are not checked against existing UUIDs, so conflicts may still happen.

Package

chillax.core

Source

server.lisp (file)

Function: hashget HASH &rest KEYS

Convenience function for recursively accessing hash tables.

Package

chillax.utils

Source

utils.lisp (file)

Writer

(setf hashget) (function)

Function: (setf hashget) NEW-VALUE HASH KEY &rest MORE-KEYS

Uses the last key given to hashget to insert NEW-VALUE into the hash table returned by the second-to-last key.
tl;dr: DWIM SETF function for HASHGET.

Package

chillax.utils

Source

utils.lisp (file)

Reader

hashget (function)

Function: mkhash &rest KEYS-AND-VALUES &aux TABLE

Convenience function for ‘literal’ hash table definition.

Package

chillax.utils

Source

utils.lisp (file)

Function: post-document DB DOC

POSTs a document into DB. CouchDB will automatically assign a UUID if the document does not already exist. Note that using this function is discouraged in the CouchDB documentation, since it may result in duplicate documents because of proxies and other network intermediaries. If what you need is to create a new document with a generated id, consider using GET-UUIDS with PUT-DOCUMENT.

Package

chillax.core

Source

document.lisp (file)

Function: put-attachment DB DOC-ID ATTACHMENT-NAME DATA &key REV CONTENT-TYPE

Adds DATA as an attachment. DATA can be a number of things:

* String or sequence of octets - DATA will be sent as-is directly to the server (using EXTERNAL-FORMAT-OUT for strings).
* Stream - The stream will be read until EOF is reached.
* Pathname - The file the pathname denotes will be opened and its data uploaded.
* Function designator - The corresponding function will be called with one argument, the stream to the server, to which it should send data.

If the document already exists, REV is required. This function can be used on non-existent documents. If so, REV is not needed, and a document will be created automatically, and the attachment associated with it.

The CONTENT-TYPE should be a string specifying the content type for DATA.

Package

chillax.core

Source

document.lisp (file)

Function: put-document DB ID DOC &key BATCH-OK-P

Puts a document into DB, using ID.

Package

chillax.core

Source

document.lisp (file)

Function: query-temporary-view DB &rest ALL-KEYS &key LANGUAGE REDUCE MAP KEY STARTKEY STARTKEY-DOCID ENDKEY ENDKEY-DOCID LIMIT SKIP DESCENDINGP GROUPP GROUP-LEVEL REDUCEP STALEP INCLUDE-DOCS-P INCLUSIVE-END-P

Queries a temporary view. These views are meant to be for testing and development purposes, and should _not_ be used in actual code.

Package

chillax.core

Source

design-document.lisp (file)

Function: query-view DB DESIGN-DOC-NAME VIEW-NAME &rest ALL-KEYS &key KEY STARTKEY STARTKEY-DOCID ENDKEY MULTI-KEYS ENDKEY-DOCID LIMIT SKIP DESCENDINGP GROUPP GROUP-LEVEL REDUCEP STALEP INCLUDE-DOCS-P INCLUSIVE-END-P

Queries view named by VIEW-NAME in DESIGN-DOC-NAME. Keyword arguments correspond to CouchDB view query arguments.

* key - Single key to search for.
* multi-keys - Multiple keys to search for.
* startkey - When searching for a range of keys, the key to start from.
* endkey - When searching for a range of keys, the key to end at. Whether this is inclusive or not depends on inclusive-end-p (default: true)
* inclusive-end-p - If TRUE, endkey is included in the result. (default: true)
* startkey-docid - Like startkey, but keyed on the result documents’ doc-ids.
* endkey-docid - Like endkey, but keyed on the result documents’ doc-ids.
* limit - Maximum number of results to return.
* stalep - If TRUE, CouchDB will not refresh the view, even if it is stalled. (default: false)
* descendingp - If TRUE, will return reversed results. (default: false)
* skip - Number of documents to skip while querying.
* groupp - Controls whether the reduce function reduces to a set of distinct keys, or to a single result row.
* group-level - It’s complicated. Google it!
* reducep - If FALSE, return the view without applying its reduce function (if any). (default: true) * include-docs-p - If TRUE, includes the entire document with the result of the query. (default: false)

Package

chillax.core

Source

design-document.lisp (file)

Function: replicate SERVER SOURCE TARGET &key CREATE-TARGET-P CONTINUOUSP &aux TO-JSON

Replicates the database in SOURCE to TARGET. SOURCE and TARGET can both be either database names in the local server, or full URLs to local or remote databases. If CREATE-TARGET-P is true, the target database will automatically be created if it does not exist. If CONTINUOUSP is true, CouchDB will continue propagating any changes in SOURCE to TARGET.

Package

chillax.core

Source

server.lisp (file)

Function: server-uri SERVER

Returns a string representation of the URL SERVER represents.

Package

chillax.core

Source

server.lisp (file)

Function: stats SERVER

Requests general statistics from SERVER.

Package

chillax.core

Source

server.lisp (file)

Function: strcat STRING &rest MORE-STRINGS
Package

chillax.utils

Source

utils.lisp (file)

Function: view-cleanup DB

Invokes _view_cleanup on DB. Old view output will remain on disk until this is invoked.

Package

chillax.core

Source

design-document.lisp (file)


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

6.1.5 Generic functions

Generic Function: at DOC &rest KEYS
Generic Function: (setf at) NEW-VALUE DOC KEY &rest MORE-KEYS
Package

chillax.utils

Source

utils.lisp (file)

Methods
Method: at (DOC list) &rest KEYS
Method: at (DOC hash-table) &rest KEYS
Method: (setf at) NEW-VALUE (DOC list) KEY &rest MORE-KEYS
Method: (setf at) NEW-VALUE (DOC hash-table) KEY &rest MORE-KEYS
Generic Function: data->json SERVER DATA &key

Converts DATA to JSON suitable for sending to CouchDB.

Package

chillax.core

Source

server.lisp (file)

Methods
Method: data->json (SERVER yason-server) DATA &key
Source

yason.lisp (file)

Method: data->json (SERVER standard-server) DATA &key
Generic Function: database-name DATABASE

Returns the URL-encoded name of the database, a string. Note that CouchDB accepts certain characters in database names -only- if they are URL-encoded (such as #/). It is up to individual implementations of DATABASE-NAME to implement this encoding.

Package

chillax.core

Source

database.lisp (file)

Methods
Method: database-name (STANDARD-DATABASE standard-database)

automatically generated reader method

Generic Function: database-server DATABASE

Returns the server object with which DATABASE is associated.

Package

chillax.core

Source

database.lisp (file)

Methods
Method: database-server (STANDARD-DATABASE standard-database)

automatically generated reader method

Generic Function: json->data SERVER JSON &key

Converts JSON to the desired data structure.

Package

chillax.core

Source

server.lisp (file)

Methods
Method: json->data (SERVER yason-server) JSON &key
Source

yason.lisp (file)

Method: json->data (SERVER standard-server) JSON &key
Generic Function: make-db-object SERVER NAME

Creates an object which represents a database connection in SERVER. The object must conform to the database protocol.

Package

chillax.core

Source

server.lisp (file)

Methods
Method: make-db-object (SERVER standard-server) NAME
Source

database.lisp (file)

Generic Function: server-host SERVER
Package

chillax.core

Source

server.lisp (file)

Methods
Method: server-host (STANDARD-SERVER standard-server)

automatically generated reader method

Generic Function: server-password SERVER
Package

chillax.core

Source

server.lisp (file)

Methods
Method: server-password (STANDARD-SERVER standard-server)

automatically generated reader method

Generic Function: server-port SERVER
Package

chillax.core

Source

server.lisp (file)

Methods
Method: server-port (STANDARD-SERVER standard-server)

automatically generated reader method

Generic Function: server-secure-p SERVER
Package

chillax.core

Source

server.lisp (file)

Methods
Method: server-secure-p (STANDARD-SERVER standard-server)

automatically generated reader method

Generic Function: server-username SERVER
Package

chillax.core

Source

server.lisp (file)

Methods
Method: server-username (STANDARD-SERVER standard-server)

automatically generated reader method


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

6.1.6 Conditions

Condition: couchdb-error ()
Package

chillax.core

Source

server.lisp (file)

Direct superclasses

condition (condition)

Direct subclasses
Condition: database-error ()
Package

chillax.core

Source

database.lisp (file)

Direct superclasses

couchdb-error (condition)

Direct subclasses
Direct methods

database-error-uri (method)

Direct slots
Slot: uri
Initargs

:uri

Readers

database-error-uri (generic function)

Condition: db-already-exists ()
Package

chillax.core

Source

database.lisp (file)

Direct superclasses

database-error (condition)

Condition: db-not-found ()
Package

chillax.core

Source

database.lisp (file)

Direct superclasses

database-error (condition)

Condition: document-conflict ()
Package

chillax.core

Source

document.lisp (file)

Direct superclasses

document-error (condition)

Direct methods
Direct slots
Slot: conflicting-doc
Initargs

:doc

Readers

conflicting-document (generic function)

Slot: conflicting-doc-id
Initargs

:id

Readers

conflicting-document-id (generic function)

Condition: document-error ()
Package

chillax.core

Source

document.lisp (file)

Direct superclasses

couchdb-error (condition)

Direct subclasses
Condition: document-not-found ()
Package

chillax.core

Source

document.lisp (file)

Direct superclasses

document-error (condition)

Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

document-404-id (generic function)

Slot: db
Initargs

:db

Readers

document-404-db (generic function)

Condition: unexpected-response ()
Package

chillax.core

Source

server.lisp (file)

Direct superclasses

couchdb-error (condition)

Direct methods
Direct slots
Slot: status-code
Initargs

:status-code

Readers

error-status-code (generic function)

Slot: response
Initargs

:response

Readers

error-response (generic function)


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

6.1.7 Classes

Class: standard-database ()

Minimal, class-based implementation of the database protocol.

Package

chillax.core

Source

database.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: server
Initargs

:server

Readers

database-server (generic function)

Slot: name
Readers

database-name (generic function)

Class: standard-server ()

Default implementation of the server protocol.

Package

chillax.core

Source

server.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

yason-server (class)

Direct methods
Direct slots
Slot: host
Initargs

:host

Readers

server-host (generic function)

Slot: port
Initargs

:port

Readers

server-port (generic function)

Slot: username
Initargs

:username

Readers

server-username (generic function)

Slot: password
Initargs

:password

Readers

server-password (generic function)

Slot: securep
Initargs

:securep

Readers

server-secure-p (generic function)

Direct Default Initargs
InitargValue
:host"127.0.0.1"
:port5984
:usernamenil
:passwordnil
:securepnil
Class: yason-server ()

YASON-SERVERs use Yason’s JSON parser/encoder to automatically translate content going to/coming from the associated CouchDB server.

Package

chillax.yason

Source

yason.lisp (file)

Direct superclasses

standard-server (class)

Direct methods
Direct slots
Slot: array-as-vector-p
Initargs

:array-as-vector-p

Readers

parse-json-arrays-as-vectors-p (generic function)

Slot: boolean-as-symbol-p
Initargs

:boolean-as-symbol-p

Readers

parse-json-booleans-as-symbols-p (generic function)

Slot: object-as-alist-p
Initargs

:object-as-alist-p

Readers

parse-object-as-alist-p (generic function)

Slot: parse-object-key-fun
Initargs

:parse-object-key-fun

Readers

parse-object-key-fun (generic function)

Direct Default Initargs
InitargValue
:array-as-vector-pnil
:boolean-as-symbol-pnil
:object-as-alist-pnil
:parse-object-key-fun(function identity)

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

6.2 Internal definitions


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

6.2.1 Special variables

Special Variable: +status-codes+

A simple alist of keyword names for HTTP status codes, keyed by status code.

Package

chillax.core

Source

server.lisp (file)

Special Variable: +utf-8+
Package

chillax.core

Source

server.lisp (file)


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

6.2.2 Macros

Macro: handle-request (RESULT-VAR DB URI &rest DB-REQUEST-KEYS &key &allow-other-keys) &body EXPECTED-RESPONSES

Provides a nice interface to the relatively manual, low-level status-code checking that Chillax uses to understand CouchDB’s responses. The format for EXPECTED-RESPONSES is the same as the CASE macro: The keys should be either keywords, or lists o keywords (not evaluated), which correspond to translated HTTP status code names. See +status-codes+ for all the currently-recognized keywords.

Package

chillax.core

Source

database.lisp (file)


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

6.2.3 Functions

Function: @ DOC &rest KEYS
Function: (setf @) NEW-VALUE DOC KEY &rest MORE-KEYS
Package

chillax.utils

Source

utils.lisp (file)

Function: build-view-params DATABASE &key KEY STARTKEY ENDKEY STARTKEY-DOCID ENDKEY-DOCID LIMIT SKIP DESCENDINGP GROUPP GROUP-LEVEL REDUCEP STALEP INCLUDE-DOCS-P INCLUSIVE-END-P &allow-other-keys
Package

chillax.core

Source

design-document.lisp (file)

Function: db-request DB URI &rest ALL-KEYS

Sends a CouchDB request to DB.

Package

chillax.core

Source

database.lisp (file)

Function: print-database DB STREAM

Objects implementing the database protocol may use this function in their PRINT-OBJECT method.

Package

chillax.core

Source

database.lisp (file)

Function: url-encode STRING
Package

chillax.core

Source

database.lisp (file)


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

6.2.4 Generic functions

Generic Function: conflicting-document CONDITION
Package

chillax.core

Methods
Method: conflicting-document (CONDITION document-conflict)
Source

document.lisp (file)

Generic Function: conflicting-document-id CONDITION
Package

chillax.core

Methods
Method: conflicting-document-id (CONDITION document-conflict)
Source

document.lisp (file)

Generic Function: database-error-uri CONDITION
Package

chillax.core

Methods
Method: database-error-uri (CONDITION database-error)
Source

database.lisp (file)

Generic Function: document-404-db CONDITION
Package

chillax.core

Methods
Method: document-404-db (CONDITION document-not-found)
Source

document.lisp (file)

Generic Function: document-404-id CONDITION
Package

chillax.core

Methods
Method: document-404-id (CONDITION document-not-found)
Source

document.lisp (file)

Generic Function: error-response CONDITION
Package

chillax.core

Methods
Method: error-response (CONDITION unexpected-response)
Source

server.lisp (file)

Generic Function: error-status-code CONDITION
Package

chillax.core

Methods
Method: error-status-code (CONDITION unexpected-response)
Source

server.lisp (file)

Generic Function: parse-json-arrays-as-vectors-p SERVER
Package

chillax.yason

Source

yason.lisp (file)

Methods
Method: parse-json-arrays-as-vectors-p (YASON-SERVER yason-server)

automatically generated reader method

Generic Function: parse-json-booleans-as-symbols-p SERVER
Package

chillax.yason

Source

yason.lisp (file)

Methods
Method: parse-json-booleans-as-symbols-p (YASON-SERVER yason-server)

automatically generated reader method

Generic Function: parse-object-as-alist-p SERVER
Package

chillax.yason

Source

yason.lisp (file)

Methods
Method: parse-object-as-alist-p (YASON-SERVER yason-server)

automatically generated reader method

Generic Function: parse-object-key-fun SERVER
Package

chillax.yason

Source

yason.lisp (file)

Methods
Method: parse-object-key-fun (YASON-SERVER yason-server)

automatically generated reader method

Generic Function: view-404-db CONDITION
Package

chillax.core

Methods
Method: view-404-db (CONDITION view-not-found)
Source

design-document.lisp (file)

Generic Function: view-404-design-document CONDITION
Package

chillax.core

Methods
Method: view-404-design-document (CONDITION view-not-found)
Source

design-document.lisp (file)

Generic Function: view-404-view CONDITION
Package

chillax.core

Methods
Method: view-404-view (CONDITION view-not-found)
Source

design-document.lisp (file)


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

6.2.5 Conditions

Condition: view-not-found ()
Package

chillax.core

Source

design-document.lisp (file)

Direct superclasses

couchdb-error (condition)

Direct methods
Direct slots
Slot: view
Initargs

:view

Readers

view-404-view (generic function)

Slot: design-doc
Initargs

:ddoc

Readers

view-404-design-document (generic function)

Slot: db
Initargs

:db

Readers

view-404-db (generic function)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   C   F   L   M  
Index Entry  Section

C
chillax.asd: The chillax<dot>asd file
chillax.core.asd: The chillax<dot>core<dot>asd file
chillax.core/src: The chillax<dot>core/src module
chillax.core/src/core: The chillax<dot>core/src/core module
chillax.core/src/core/database.lisp: The chillax<dot>core/src/core/database<dot>lisp file
chillax.core/src/core/design-document.lisp: The chillax<dot>core/src/core/design-document<dot>lisp file
chillax.core/src/core/document.lisp: The chillax<dot>core/src/core/document<dot>lisp file
chillax.core/src/core/package.lisp: The chillax<dot>core/src/core/package<dot>lisp file
chillax.core/src/core/server.lisp: The chillax<dot>core/src/core/server<dot>lisp file
chillax.core/src/utils.lisp: The chillax<dot>core/src/utils<dot>lisp file
chillax.yason.asd: The chillax<dot>yason<dot>asd file
chillax.yason/src: The chillax<dot>yason/src module
chillax.yason/src/yason.lisp: The chillax<dot>yason/src/yason<dot>lisp file
chillax/src: The chillax/src module
chillax/src/chillax.lisp: The chillax/src/chillax<dot>lisp file

F
File, Lisp, chillax.asd: The chillax<dot>asd file
File, Lisp, chillax.core.asd: The chillax<dot>core<dot>asd file
File, Lisp, chillax.core/src/core/database.lisp: The chillax<dot>core/src/core/database<dot>lisp file
File, Lisp, chillax.core/src/core/design-document.lisp: The chillax<dot>core/src/core/design-document<dot>lisp file
File, Lisp, chillax.core/src/core/document.lisp: The chillax<dot>core/src/core/document<dot>lisp file
File, Lisp, chillax.core/src/core/package.lisp: The chillax<dot>core/src/core/package<dot>lisp file
File, Lisp, chillax.core/src/core/server.lisp: The chillax<dot>core/src/core/server<dot>lisp file
File, Lisp, chillax.core/src/utils.lisp: The chillax<dot>core/src/utils<dot>lisp file
File, Lisp, chillax.yason.asd: The chillax<dot>yason<dot>asd file
File, Lisp, chillax.yason/src/yason.lisp: The chillax<dot>yason/src/yason<dot>lisp file
File, Lisp, chillax/src/chillax.lisp: The chillax/src/chillax<dot>lisp file

L
Lisp File, chillax.asd: The chillax<dot>asd file
Lisp File, chillax.core.asd: The chillax<dot>core<dot>asd file
Lisp File, chillax.core/src/core/database.lisp: The chillax<dot>core/src/core/database<dot>lisp file
Lisp File, chillax.core/src/core/design-document.lisp: The chillax<dot>core/src/core/design-document<dot>lisp file
Lisp File, chillax.core/src/core/document.lisp: The chillax<dot>core/src/core/document<dot>lisp file
Lisp File, chillax.core/src/core/package.lisp: The chillax<dot>core/src/core/package<dot>lisp file
Lisp File, chillax.core/src/core/server.lisp: The chillax<dot>core/src/core/server<dot>lisp file
Lisp File, chillax.core/src/utils.lisp: The chillax<dot>core/src/utils<dot>lisp file
Lisp File, chillax.yason.asd: The chillax<dot>yason<dot>asd file
Lisp File, chillax.yason/src/yason.lisp: The chillax<dot>yason/src/yason<dot>lisp file
Lisp File, chillax/src/chillax.lisp: The chillax/src/chillax<dot>lisp file

M
Module, chillax.core/src: The chillax<dot>core/src module
Module, chillax.core/src/core: The chillax<dot>core/src/core module
Module, chillax.yason/src: The chillax<dot>yason/src module
Module, chillax/src: The chillax/src module

Jump to:   C   F   L   M  

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

A.2 Functions

Jump to:   (   @  
A   B   C   D   E   F   G   H   J   M   P   Q   R   S   U   V  
Index Entry  Section

(
(setf @): Internal functions
(setf at): Exported generic functions
(setf at): Exported generic functions
(setf at): Exported generic functions
(setf hashget): Exported functions

@
@: Internal functions

A
active-tasks: Exported functions
all-dbs: Exported functions
all-documents: Exported functions
at: Exported generic functions
at: Exported generic functions
at: Exported generic functions

B
batch-get-documents: Exported functions
build-view-params: Internal functions
bulk-post-documents: Exported functions

C
compact-design-doc: Exported functions
Compiler Macro, hashget: Exported compiler macros
config-info: Exported functions
conflicting-document: Internal generic functions
conflicting-document: Internal generic functions
conflicting-document-id: Internal generic functions
conflicting-document-id: Internal generic functions
copy-attachment: Exported functions
copy-document: Exported functions
couch-request: Exported functions

D
data->json: Exported generic functions
data->json: Exported generic functions
data->json: Exported generic functions
database-error-uri: Internal generic functions
database-error-uri: Internal generic functions
database-name: Exported generic functions
database-name: Exported generic functions
database-server: Exported generic functions
database-server: Exported generic functions
db-changes: Exported functions
db-compact: Exported functions
db-connect: Exported functions
db-create: Exported functions
db-delete: Exported functions
db-info: Exported functions
db-request: Internal functions
db-uri: Exported functions
delete-attachment: Exported functions
delete-document: Exported functions
dequote: Exported functions
design-doc-info: Exported functions
document-404-db: Internal generic functions
document-404-db: Internal generic functions
document-404-id: Internal generic functions
document-404-id: Internal generic functions

E
ensure-db: Exported functions
error-response: Internal generic functions
error-response: Internal generic functions
error-status-code: Internal generic functions
error-status-code: Internal generic functions

F
fun: Exported macros
Function, (setf @): Internal functions
Function, (setf hashget): Exported functions
Function, @: Internal functions
Function, active-tasks: Exported functions
Function, all-dbs: Exported functions
Function, all-documents: Exported functions
Function, batch-get-documents: Exported functions
Function, build-view-params: Internal functions
Function, bulk-post-documents: Exported functions
Function, compact-design-doc: Exported functions
Function, config-info: Exported functions
Function, copy-attachment: Exported functions
Function, copy-document: Exported functions
Function, couch-request: Exported functions
Function, db-changes: Exported functions
Function, db-compact: Exported functions
Function, db-connect: Exported functions
Function, db-create: Exported functions
Function, db-delete: Exported functions
Function, db-info: Exported functions
Function, db-request: Internal functions
Function, db-uri: Exported functions
Function, delete-attachment: Exported functions
Function, delete-document: Exported functions
Function, dequote: Exported functions
Function, design-doc-info: Exported functions
Function, ensure-db: Exported functions
Function, get-attachment: Exported functions
Function, get-document: Exported functions
Function, get-document-revision: Exported functions
Function, get-uuids: Exported functions
Function, hashget: Exported functions
Function, mkhash: Exported functions
Function, post-document: Exported functions
Function, print-database: Internal functions
Function, put-attachment: Exported functions
Function, put-document: Exported functions
Function, query-temporary-view: Exported functions
Function, query-view: Exported functions
Function, replicate: Exported functions
Function, server-uri: Exported functions
Function, stats: Exported functions
Function, strcat: Exported functions
Function, url-encode: Internal functions
Function, view-cleanup: Exported functions

G
Generic Function, (setf at): Exported generic functions
Generic Function, at: Exported generic functions
Generic Function, conflicting-document: Internal generic functions
Generic Function, conflicting-document-id: Internal generic functions
Generic Function, data->json: Exported generic functions
Generic Function, database-error-uri: Internal generic functions
Generic Function, database-name: Exported generic functions
Generic Function, database-server: Exported generic functions
Generic Function, document-404-db: Internal generic functions
Generic Function, document-404-id: Internal generic functions
Generic Function, error-response: Internal generic functions
Generic Function, error-status-code: Internal generic functions
Generic Function, json->data: Exported generic functions
Generic Function, make-db-object: Exported generic functions
Generic Function, parse-json-arrays-as-vectors-p: Internal generic functions
Generic Function, parse-json-booleans-as-symbols-p: Internal generic functions
Generic Function, parse-object-as-alist-p: Internal generic functions
Generic Function, parse-object-key-fun: Internal generic functions
Generic Function, server-host: Exported generic functions
Generic Function, server-password: Exported generic functions
Generic Function, server-port: Exported generic functions
Generic Function, server-secure-p: Exported generic functions
Generic Function, server-username: Exported generic functions
Generic Function, view-404-db: Internal generic functions
Generic Function, view-404-design-document: Internal generic functions
Generic Function, view-404-view: Internal generic functions
get-attachment: Exported functions
get-document: Exported functions
get-document-revision: Exported functions
get-uuids: Exported functions

H
handle-request: Internal macros
hashget: Exported compiler macros
hashget: Exported functions

J
json->data: Exported generic functions
json->data: Exported generic functions
json->data: Exported generic functions

M
Macro, fun: Exported macros
Macro, handle-request: Internal macros
make-db-object: Exported generic functions
make-db-object: Exported generic functions
Method, (setf at): Exported generic functions
Method, (setf at): Exported generic functions
Method, at: Exported generic functions
Method, at: Exported generic functions
Method, conflicting-document: Internal generic functions
Method, conflicting-document-id: Internal generic functions
Method, data->json: Exported generic functions
Method, data->json: Exported generic functions
Method, database-error-uri: Internal generic functions
Method, database-name: Exported generic functions
Method, database-server: Exported generic functions
Method, document-404-db: Internal generic functions
Method, document-404-id: Internal generic functions
Method, error-response: Internal generic functions
Method, error-status-code: Internal generic functions
Method, json->data: Exported generic functions
Method, json->data: Exported generic functions
Method, make-db-object: Exported generic functions
Method, parse-json-arrays-as-vectors-p: Internal generic functions
Method, parse-json-booleans-as-symbols-p: Internal generic functions
Method, parse-object-as-alist-p: Internal generic functions
Method, parse-object-key-fun: Internal generic functions
Method, server-host: Exported generic functions
Method, server-password: Exported generic functions
Method, server-port: Exported generic functions
Method, server-secure-p: Exported generic functions
Method, server-username: Exported generic functions
Method, view-404-db: Internal generic functions
Method, view-404-design-document: Internal generic functions
Method, view-404-view: Internal generic functions
mkhash: Exported functions

P
parse-json-arrays-as-vectors-p: Internal generic functions
parse-json-arrays-as-vectors-p: Internal generic functions
parse-json-booleans-as-symbols-p: Internal generic functions
parse-json-booleans-as-symbols-p: Internal generic functions
parse-object-as-alist-p: Internal generic functions
parse-object-as-alist-p: Internal generic functions
parse-object-key-fun: Internal generic functions
parse-object-key-fun: Internal generic functions
post-document: Exported functions
print-database: Internal functions
put-attachment: Exported functions
put-document: Exported functions

Q
query-temporary-view: Exported functions
query-view: Exported functions

R
replicate: Exported functions

S
server-host: Exported generic functions
server-host: Exported generic functions
server-password: Exported generic functions
server-password: Exported generic functions
server-port: Exported generic functions
server-port: Exported generic functions
server-secure-p: Exported generic functions
server-secure-p: Exported generic functions
server-uri: Exported functions
server-username: Exported generic functions
server-username: Exported generic functions
stats: Exported functions
strcat: Exported functions

U
url-encode: Internal functions

V
view-404-db: Internal generic functions
view-404-db: Internal generic functions
view-404-design-document: Internal generic functions
view-404-design-document: Internal generic functions
view-404-view: Internal generic functions
view-404-view: Internal generic functions
view-cleanup: Exported functions

Jump to:   (   @  
A   B   C   D   E   F   G   H   J   M   P   Q   R   S   U   V  

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

A.3 Variables

Jump to:   *   +  
A   B   C   D   H   I   N   O   P   R   S   U   V  
Index Entry  Section

*
*chillax-version*: Exported special variables

+
+status-codes+: Internal special variables
+utf-8+: Internal special variables

A
array-as-vector-p: Exported classes

B
boolean-as-symbol-p: Exported classes

C
conflicting-doc: Exported conditions
conflicting-doc-id: Exported conditions

D
db: Exported conditions
db: Internal conditions
design-doc: Internal conditions

H
host: Exported classes

I
id: Exported conditions

N
name: Exported classes

O
object-as-alist-p: Exported classes

P
parse-object-key-fun: Exported classes
password: Exported classes
port: Exported classes

R
response: Exported conditions

S
securep: Exported classes
server: Exported classes
Slot, array-as-vector-p: Exported classes
Slot, boolean-as-symbol-p: Exported classes
Slot, conflicting-doc: Exported conditions
Slot, conflicting-doc-id: Exported conditions
Slot, db: Exported conditions
Slot, db: Internal conditions
Slot, design-doc: Internal conditions
Slot, host: Exported classes
Slot, id: Exported conditions
Slot, name: Exported classes
Slot, object-as-alist-p: Exported classes
Slot, parse-object-key-fun: Exported classes
Slot, password: Exported classes
Slot, port: Exported classes
Slot, response: Exported conditions
Slot, securep: Exported classes
Slot, server: Exported classes
Slot, status-code: Exported conditions
Slot, uri: Exported conditions
Slot, username: Exported classes
Slot, view: Internal conditions
Special Variable, *chillax-version*: Exported special variables
Special Variable, +status-codes+: Internal special variables
Special Variable, +utf-8+: Internal special variables
status-code: Exported conditions

U
uri: Exported conditions
username: Exported classes

V
view: Internal conditions

Jump to:   *   +  
A   B   C   D   H   I   N   O   P   R   S   U   V  

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

A.4 Data types

Jump to:   C   D   P   S   U   V   Y  
Index Entry  Section

C
chillax: The chillax system
chillax: The chillax package
chillax.core: The chillax<dot>core system
chillax.core: The chillax<dot>core package
chillax.utils: The chillax<dot>utils package
chillax.yason: The chillax<dot>yason system
chillax.yason: The chillax<dot>yason package
Class, standard-database: Exported classes
Class, standard-server: Exported classes
Class, yason-server: Exported classes
Condition, couchdb-error: Exported conditions
Condition, database-error: Exported conditions
Condition, db-already-exists: Exported conditions
Condition, db-not-found: Exported conditions
Condition, document-conflict: Exported conditions
Condition, document-error: Exported conditions
Condition, document-not-found: Exported conditions
Condition, unexpected-response: Exported conditions
Condition, view-not-found: Internal conditions
couchdb-error: Exported conditions

D
database-error: Exported conditions
db-already-exists: Exported conditions
db-not-found: Exported conditions
document-conflict: Exported conditions
document-error: Exported conditions
document-not-found: Exported conditions

P
Package, chillax: The chillax package
Package, chillax.core: The chillax<dot>core package
Package, chillax.utils: The chillax<dot>utils package
Package, chillax.yason: The chillax<dot>yason package

S
standard-database: Exported classes
standard-server: Exported classes
System, chillax: The chillax system
System, chillax.core: The chillax<dot>core system
System, chillax.yason: The chillax<dot>yason system

U
unexpected-response: Exported conditions

V
view-not-found: Internal conditions

Y
yason-server: Exported classes

Jump to:   C   D   P   S   U   V   Y