Hunchentoot is a web server written in Common Lisp and at the same time a toolkit for building dynamic websites. As a stand-alone web server, Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent connections (keep-alive), and SSL.
This package provides a macro commonly used in livecoding to enable continuing when errors are raised. Simply wrap around a chunk of code and it provides a restart called continue
which ignores the error and carrys on from the end of the body.
This system implements a general definitions introspection library. It gives you the ability to retrieve definitions or bindings associated with designators such as symbols, packages, and names in general. For instance, it allows you to retrieve all function, type, variable, method, etc. definitions of a symbol.
CL-INTERPOL is a library for Common Lisp which modifies the reader so that you can have interpolation within strings similar to Perl or Unix Shell scripts. It also provides various ways to insert arbitrary characters into literal strings even if your editor/IDE doesn't support them.
This project is meant to provide tools for internationalizing Common Lisp programs.
One important aspect of internationalization is of course the language used in error messages, documentation strings, etc. But with this project we provide tools for all other aspects of internationalization as well, including dates, weight, temperature, names of physical quantitites, etc.
This is an implementation of the "Markless standard" (https://github.com/shirakumo/markless) at version 1.0. It handles the parsing of plaintext from a stream into an abstract syntax tree composed out of strings and component objects. From there the AST can be easily compiled into a target markup language like HTML.
Lorem ipsum dolor sit amet, consectetur adipiscing elit erat, id eget tellus et turpis, incididunt. Purus mollis penatibus, odio facilisis sit. Quisque sagittis quisque. Incididunt commodo mi non. Lectus facilisi suscipit duis ultricies sem quis. Lorem massa volutpat quis suspendisse turpis, netus hac elementum. At do. Ac integer metus potenti scelerisque fringilla labore. Tellus penatibus arcu ligula nisi.
This library allows you to open native file dialogs to open and save files. This is useful if you have an application that's primarily text based and would like a more convenient file selection utility, or if you are working with a UI toolkit that does not offer a way to access the native file dialogs directly.
cl-site-gen
is a simple static site generator for those crazy enough to want to write their websites in CL. This project is focused on being simple and letting you determine how you want the site to look. By default the project uses cl-flute
for generating HTML but this can configured by the user.
EASY-ROUTES is yet another routes handling system on top of Hunchentoot. It's just glue code for Restas routing subsystem (CL-ROUTES).
It supports:
dispatch based on HTTP method
arguments extraction from the url path
decorators
URL generation from route names
This package provides EASY-ROUTES, EASY-ROUTES+DJULA and EASY-ROUTES+ERRORS systems.
The Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in. Both Emacs and vi editing modes are available. The Readline library includes additional functions to maintain a list of previously-entered command lines, to recall and perhaps reedit those lines, and perform csh-like history expansion on previous commands.
Quicksearch is a search-engine-interface for Common Lisp. The goal of Quicksearch is to find the Common Lisp library quickly. For example, if you will find the library about json, just type (qs:? 'json)
at REPL.
The function quicksearch
searches for Common Lisp projects in Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL. The function ?
is abbreviation wrapper for quicksearch
.
CL-FAST-ECS is a Common Lisp library providing an implementation of the ECS pattern, primarily focused on speed and interactive development.
ECS is an architectural data-oriented design pattern that allows for the effective processing of a large number of in-game objects while keeping the code and data separated. This provides flexibility in the way that game objects are built at runtime.
In Common Lisp, a special variable that is never dynamically bound typically serves as a stand-in for a global variable. The global-vars
library provides true global variables that are implemented by some compilers. An attempt to rebind a global variable properly results in a compiler error. That is, a global variable cannot be dynamically bound.
Global variables therefore allow us to communicate an intended usage that differs from special variables. Global variables are also more efficient than special variables, especially in the presence of threads.
cl-docutils
is a Common Lisp implementation of the Docutils text processing system for processing plaintext into presentational formats such as HTML and LaTeX. It is based upon the Python Docutils reference implementation but uses Common Lisp idioms making it easier to extend and more flexible. As with the reference implementation it includes a parser for the reStructured text plaintext markup syntax which is suitable for marking up documentation and for use as user markup for collaborative web sites. It is successfully used to support a higher education peer-review assessment and online tutorial system.
Parenscript is a translator from an extended subset of Common Lisp to JavaScript. Parenscript code can run almost identically on both the browser (as JavaScript) and server (as Common Lisp).
Parenscript code is treated the same way as Common Lisp code, making the full power of Lisp macros available for JavaScript. This provides a web development environment that is unmatched in its ability to reduce code duplication and provide advanced meta-programming facilities to web developers.
At the same time, Parenscript is different from almost all other "language X" to JavaScript translators in that it imposes almost no overhead:
No run-time dependencies: Any piece of Parenscript code is runnable as-is. There are no JavaScript files to include.
Native types: Parenscript works entirely with native JavaScript data types. There are no new types introduced, and object prototypes are not touched.
Native calling convention: Any JavaScript code can be called without the need for bindings. Likewise, Parenscript can be used to make efficient, self-contained JavaScript libraries.
Readable code: Parenscript generates concise, formatted, idiomatic JavaScript code. Identifier names are preserved. This enables seamless debugging in tools like Firebug.
Efficiency: Parenscript introduces minimal overhead for advanced Common Lisp features. The generated code is almost as fast as hand-written JavaScript.
Modeline support for wifi connectivity.
StumpWM modeline support to show disk usage
This package provides Common Lisp math and statistics routines.
This is a Common Lisp library providing various utilities.
This is a task scheduling framework for Common Lisp.
This library provides trivial percent encoding and decoding functions for URLs.
This package provides an interface which integrates password-store into StumpWM.