Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the zaserve Reference Manual, version 1.3.65, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 03:15:35 2022 GMT+0.
Next: Systems, Previous: The zaserve Reference Manual, Up: The zaserve Reference Manual [Contents][Index]
(Portable Fork for use with ZACL, system name is "zaserve")
AllegroServe has these components:
We've recently added these features:
See the latest Allegro CL Release Notes for more information on AllegroServe changes.
John Foderaro, Franz Inc.
The server part of AllegroServe can be used either as a standalone web server or a module loaded into an application to provide a user interface to the application. AllegroServe's proxy ability allows it to run on the gateway machine between a company's internal network and the internet. AllegroServe's client functions allow Lisp programs to explore the web.
AllegroServe was also written and open sourced as a way to demonstrate network programming in Allegro Common Lisp. AllegroServe was written according to a certain coding standard to demonstrate how Lisp programs are more readable if certain macros and special forms are avoided.
Although AllegroServe was originally written with portability (to other CL implementations) as "neither a goal nor a non-goal" (according to author John Foderaro), it is a testament to the cleanliness of the AllegroServe codebase, as well as the flexibility of Common Lisp, and the power of the CL ANSI standard, that some ports of AllegroServe have in fact been accomplished over the years.
This is the most recent one, and attempts to keep as close as possible
to the official AllegroServe code. It uses a compatibility layer
called "ZACL", available
in Quicklisp as :zacl
.
With this said, please keep in mind that Allegro CL is AllegroServe's native platform, and as such, AllegroServe will always work and perform best on Allegro CL. Allegro CL also comes backed with expert commerical support. So if you have mission-critical or performance-critical applications, it will be to your advantage to invest in Allegro CL for developing and running your AllegroServe applications.
Zaserve works on all recent versions SBCL and CCL. Contributions of ZACL ports to other platforms are welcome.
Zaserve depends on
ZACL. This dependency is
taken care of for Quicklisp with the included zaserve.asd
file.
In order to run the allegroserve test suite you'll need to have the tester module (available at https://github.com/franzinc) loaded.
CL-USER> (ql:quickload :zaserve)
This will not load the example files.
user(2): (net.aserve:start :port 8000)
you can omit the port argument on Windows where any process can allocate port 80 (as long as it's unused).
go to a web browser and try http://your-machine-name:8000/. If the web browser is on the same machine as AllegroServe is running you can use http://localhost:8000/ as well. Now that you've verified that it works, you'll want to create an aserve.fasl that you can load into your application.
user(3): :cd <path-to-aserve>
user(4): (make-aserve.fasl)
now you'll find aserve.fasl in the aserve source directory.
See the doc/aserve.html file that is part of this project for more information on configuring AllegroServe.
For complete documentation see the contents of the doc directory, which is part of this project or visit the online version of the AllegroServe documentation.
cd to the directory containing the distribution and start Allegro cl (or start Allegro and use the toplevel ":cd" command to cd to the directory containing the aserve).
user(1): :ld aserve.fasl
user(2): :ld examples/examples
user(3): (net.aserve:start :port 8010)
http://localhost:8010/
The aserve source code is licensed under the terms of the Lisp Lesser GNU Public License, known as the LLGPL. The LLGPL consists of a preamble and the LGPL. Where these conflict, the preamble takes precedence. This project is referenced in the preamble as the LIBRARY.
Webactions is a session-based framework for building web sites mixing static and dynamic content that builds upon AllegroServe and is part of this project.
See the webactions/doc/webactions.html file for more information.
For other links that may be of interest are:
See the doc/tutorial.html file and the contents under the examples directory that are part of this project for more examples on how to work with AllegroServe.
This project's homepage is https://github.com/gendl/aserve. The
master
branch is intended for this "zaserve" portable version, and
the "franzinc-compatible" branch is intended to be kept in synch with
the official upstream repository maintained by Franz
Inc
You may file Issues here with any questions, comments, or suggestions. You may also fork this repository and create Pull Requests.
Next: Modules, Previous: Introduction, Up: The zaserve Reference Manual [Contents][Index]
The main system appears first, followed by any subsystem dependency.
Lightly modified fork of original AllegroServe for portability
John K. Foderaro
LLGPL
1.3.65
zacl (system).
zacl (system).
Next: Files, Previous: Systems, Up: The zaserve Reference Manual [Contents][Index]
Modules are listed depth-first from the system components tree.
zaserve (system).
Next: Packages, Previous: Modules, Up: The zaserve Reference Manual [Contents][Index]
Files are sorted by type and then listed depth-first from the systems components trees.
Next: zaserve/htmlgen/htmlgen.cl, Previous: Lisp, Up: Lisp [Contents][Index]
zaserve (system).
Next: zaserve/packages.cl, Previous: zaserve/zaserve.asd, Up: Lisp [Contents][Index]
htmlgen (module).
Next: zaserve/macs.cl, Previous: zaserve/htmlgen/htmlgen.cl, Up: Lisp [Contents][Index]
Next: zaserve/queue.cl, Previous: zaserve/packages.cl, Up: Lisp [Contents][Index]
packages.cl (file).
zaserve (system).
Next: zaserve/main.cl, Previous: zaserve/macs.cl, Up: Lisp [Contents][Index]
macs.cl (file).
zaserve (system).
Next: zaserve/headers.cl, Previous: zaserve/queue.cl, Up: Lisp [Contents][Index]
queue.cl (file).
zaserve (system).
Next: zaserve/parse.cl, Previous: zaserve/main.cl, Up: Lisp [Contents][Index]
main.cl (file).
zaserve (system).
Next: zaserve/decode.cl, Previous: zaserve/headers.cl, Up: Lisp [Contents][Index]
headers.cl (file).
zaserve (system).
Next: zaserve/publish.cl, Previous: zaserve/parse.cl, Up: Lisp [Contents][Index]
parse.cl (file).
zaserve (system).
Next: zaserve/authorize.cl, Previous: zaserve/decode.cl, Up: Lisp [Contents][Index]
decode.cl (file).
zaserve (system).
Next: zaserve/log.cl, Previous: zaserve/publish.cl, Up: Lisp [Contents][Index]
publish.cl (file).
zaserve (system).
Next: zaserve/client.cl, Previous: zaserve/authorize.cl, Up: Lisp [Contents][Index]
authorize.cl (file).
zaserve (system).
log-for-wserver (method).
Next: zaserve/proxy.cl, Previous: zaserve/log.cl, Up: Lisp [Contents][Index]
log.cl (file).
zaserve (system).
Next: zaserve/cgi.cl, Previous: zaserve/client.cl, Up: Lisp [Contents][Index]
client.cl (file).
zaserve (system).
Next: zaserve/chunker.cl, Previous: zaserve/proxy.cl, Up: Lisp [Contents][Index]
proxy.cl (file).
zaserve (system).
run-cgi-program (function).
Previous: zaserve/cgi.cl, Up: Lisp [Contents][Index]
cgi.cl (file).
zaserve (system).
Next: zaserve/README.md, Previous: Static, Up: Static [Contents][Index]
htmlgen (module).
Next: zaserve/ChangeLog, Previous: zaserve/htmlgen/ChangeLog, Up: Static [Contents][Index]
chunker.cl (file).
zaserve (system).
Next: zaserve/license-lgpl.txt, Previous: zaserve/README.md, Up: Static [Contents][Index]
Next: zaserve/LICENSE, Previous: zaserve/ChangeLog, Up: Static [Contents][Index]
Next: zaserve/load, Previous: zaserve/license-lgpl.txt, Up: Static [Contents][Index]
license-lgpl.txt (file).
zaserve (system).
Next: Definitions, Previous: Files, Up: The zaserve Reference Manual [Contents][Index]
Packages are listed by definition order.
Next: net.aserve.client, Previous: Packages, Up: Packages [Contents][Index]
Next: net.html.generator, Previous: net.aserve, Up: Packages [Contents][Index]
Previous: net.aserve.client, Up: Packages [Contents][Index]
Next: Indexes, Previous: Packages, Up: The zaserve Reference Manual [Contents][Index]
Definitions are sorted by export status, category, package, and then by lexicographic order.
Next: Internals, Previous: Definitions, Up: Definitions [Contents][Index]
Next: Macros, Previous: Public Interface, Up: Public Interface [Contents][Index]
The number of seconds that a read or write to the socket can be blocked before we give up and assume the client on the other side has died. Use nil to specify no timeout.
Next: Setf expanders, Previous: Special variables, Up: Public Interface [Contents][Index]
Next: Ordinary functions, Previous: Macros, Up: Public Interface [Contents][Index]
request-variable-value (function).
.inv-request-variable-value (function).
Next: Generic functions, Previous: Setf expanders, Up: Public Interface [Contents][Index]
name.
path.
Next: Standalone methods, Previous: Ordinary functions, Up: Public Interface [Contents][Index]
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated reader method
automatically generated reader method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated writer method
automatically generated reader method
automatically generated reader method
automatically generated writer method
Next: Conditions, Previous: Generic functions, Up: Public Interface [Contents][Index]
excl.
excl.
excl.
excl.
excl.
excl.
excl.
excl.
excl.
excl.
excl.
Next: Structures, Previous: Standalone methods, Up: Public Interface [Contents][Index]
error.
(quote "unspecified")
:action
This slot is read-only.
(quote "unspecified")
:result
This slot is read-only.
(quote nil)
:identifier
This slot is read-only.
Next: Classes, Previous: Conditions, Up: Public Interface [Contents][Index]
Previous: Structures, Up: Public Interface [Contents][Index]
:uri
common-lisp.
:method
:headers
:socket
:cookies
:return-connection
:content-encoding
:deferred-content
common-lisp.
:function
This slot is read-only.
""
:username
This slot is read-only.
""
:password
This slot is read-only.
""
""
"1"
This slot is read-only.
common-lisp.
:function
common-lisp.
:method
net.uri.
:uri
:raw-uri
:decoded-uri-path
:protocol
This slot is read-only.
:protocol-string
This slot is read-only.
:socket
:wserver
This slot is read-only.
:raw-request
This slot is read-only.
(net.aserve:wserver-default-vhost net.aserve:*wserver*)
:vhost
:empty
0
0
(get-universal-time)
0
:reply-stream
"http/1.1"
:patterns
(net.aserve:ensure-stream-lock excl:*initial-terminal-io*)
:log-stream
(net.aserve:ensure-stream-lock excl:*initial-terminal-io*)
:error-stream
:names
:filters
:plist
lockable-object.
:socket
net.aserve:*http-header-read-timeout*
:enable-keep-alive
:enable-chunking
(member :zlib-deflate *features*)
:enable-compression
(quote (("gz" . :gzip)))
(list (net.aserve::make-instance-locator-exact+name :exact) (net.aserve::make-instance-locator-prefix+name :prefix))
t
:logger
:log-function
excl:*initial-terminal-io*
:log-stream
:accept-hook
:latin1-base
:external-format
(make-hash-table :test (function equalp))
(net.aserve::make-instance-vhost-0)
:default-vhost
net.aserve:*http-response-timeout*
:response-timeout
net.aserve:*http-io-timeout*
:io-timeout
net.aserve:*http-header-read-timeout*
:header-read-timeout
*terminal-io*
:terminal-io
(net.aserve::make-queue-with-timeout)
0
0
:max-n-workers
This slot is read-only.
:ssl
(format nil "w~d" (net.aserve::atomic-incf net.aserve::*thread-index*))
:name
This slot is read-only.
net.aserve::*debug-connection-reset-by-peer*
:debug-connection-reset-by-peer
net.aserve::*read-request-timeout*
:read-request-timeout
net.aserve::*read-request-body-timeout*
:read-request-body-timeout
Previous: Public Interface, Up: Definitions [Contents][Index]
Next: Special variables, Previous: Internals, Up: Internals [Contents][Index]
Next: Ordinary functions, Previous: Special variables, Up: Internals [Contents][Index]
Next: Generic functions, Previous: Macros, Up: Internals [Contents][Index]
Return the size of the URL using a HEAD request.
host.
port.
Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.
copy-seq.
Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.
copy-seq.
Return a copy of SEQUENCE which is EQUAL to SEQUENCE but not EQ.
copy-seq.
Copy the data from the CREQ into PATHNAME.
cur.
end.
left.
data.
kind.
end.
max.
next.
lock.
code.
data.
key.
next.
prev.
uri.
use.
size.