Dancer (software)

Last updated
Dancer
Original author(s) Alexis Sukrieh
Initial releaseJuly 27, 2009 (2009-07-27)
Stable release
1.1.1 [1] / 2024-07-18 [±]
Repository
Written in Perl
Operating system Cross-platform
Type Web application framework
License GPL and PAL
Website perldancer.org OOjs UI icon edit-ltr-progressive.svg

Dancer is an open source lightweight web application framework written in Perl and inspired by Ruby's Sinatra.

Contents

In April 2011, Dancer was rewritten from scratch and released as Dancer2. The reason for the rewrite was to fix architectural issues and eliminate the use of singletons. [2] Development of Dancer1 was at first frozen, but was later continued to maintain backward compatibility for existing apps. [3]

Dancer is developed through GitHub, with stable releases available via CPAN. Dancer2 is released as a separate module.

Example

#!/usr/bin/env perluseDancer2;get'/hello/:name'=>sub{return"Why, hello there ".route_parameters->get('name');};get'/redirectMeTo/:trgval'=>sub{redirect'/'.route_parameters->get('trgval');};start;


Features

Out-of-box

Unlike other frameworks such as Catalyst, Dancer only requires a handful of CPAN modules and is very self-contained.

Standalone development server

Dancer includes a standalone development server that can be used for developing and testing applications.

PSGI / Plack support

Dancer supports the PSGI specification, and can thus be run on any compliant PSGI server, including Plack, uWSGI or Mongrel 2.

Abstracted

Since most parts of Dancer are abstracted and has a plugin architecture, extending Dancer is fairly straightforward, and a thriving community has sprung up around building these extensions.

Dancer features a lightweight object system, exception throwing similar to Try::Tiny, and is fast, especially in CGI environments.

See also

Related Research Articles

The Comprehensive Perl Archive Network (CPAN) is a software repository of over 250,000 software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,000 contributors. CPAN can denote either the archive network or the Perl program that acts as an interface to the network and as an automated software installer. Most software on CPAN is free and open source software.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

LWP - The World-Wide Web library for Perl is a set of Perl modules that give Perl programming easy access to sending requests to the World Wide Web. libwww-perl provides an application programming interface (API) to an HTTP client as well as a number of HTML utilities, and standard objects to represent HTTP requests and responses.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

<span class="mw-page-title-main">Catalyst (software)</span> Open-source web application framework

Catalyst is an open-source web application framework written in Perl. It closely follows the model–view–controller (MVC) architecture and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by frameworks such as Ruby on Rails, Maypole, and Spring.

The Template Toolkit (TT) is a template engine used primarily for building web sites, but is also suitable for creating any type of digital document, such as a PDF or LaTeX file. Template Toolkit is based on a mini-language and does not allow direct Perl in its templates by default, unlike some competing products. This forces developers to separate business logic into Perl libraries, leaving only presentation logic in their templates. It is written in Perl, with some popular accessories in C. It is released under a free software licence.

This is a comparison of notable web frameworks, software used to build and deploy web applications.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">Rack (web server interface)</span> API specification for web applications in programming language Ruby

Rack is a modular interface between web servers and web applications developed in the Ruby programming language. With Rack, application programming interfaces (APIs) for web frameworks and middleware are wrapped into a single method call handling HTTP requests and responses.

<span class="mw-page-title-main">Padre (software)</span> Perl software development platform

Padre is a multi-language software development platform comprising an IDE and a plug-in system to extend it. It is written primarily in Perl and is used to develop applications in this language.

<span class="mw-page-title-main">Vaadin</span> Web development platform written in Java

Vaadin is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the Java programming language only, TypeScript only, or a combination of both.

<span class="mw-page-title-main">Plack (software)</span>

Plack is a Perl web application programming framework inspired by Rack for Ruby and WSGI for Python, and it is the project behind the PSGI specification used by other frameworks such as Catalyst and Dancer. Plack allows for testing of Perl web applications without a live web server.

JSGI, or JavaScript Gateway Interface, is an interface between web servers and JavaScript-based web applications and frameworks. It was inspired by the Rack for Ruby and WSGI for Python and was one of the inspirations of PSGI for Perl.

Mojolicious is a real-time web application framework, written by Sebastian Riedel, creator of the web application framework Catalyst. Licensed as free software under the Artistic License v 2.0, it is written in the Perl programming language, and is designed for use in both simple and complex web applications, based on Riedel's previous experience developing Catalyst. Documentation for the framework was partly funded by a grant from The Perl Foundation.

AngularJS is a discontinued free and open-source JavaScript-based web framework for developing single-page applications. It was maintained mainly by Google and a community of individuals and corporations. It aimed to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model–view–viewmodel (MVVM) architectures, along with components commonly used in web applications and progressive web applications.

<span class="mw-page-title-main">Elm (programming language)</span> Functional programming language

Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces. Elm is purely functional, and is developed with emphasis on usability, performance, and robustness. It advertises "no runtime exceptions in practice", made possible by the Elm compiler's static type checking.

<span class="mw-page-title-main">Polymer (library)</span> Open-source JavaScript library of Web Components

Polymer is an open-source JavaScript library for building web applications using Web Components. The library is being developed by Google developers and contributors on GitHub. Modern design principles are implemented as a separate project using Google's Material Design design principles.

<span class="mw-page-title-main">Shadowsocks</span> Free and open-source encrypted proxy project

Shadowsocks is a free and open-source encryption protocol project, widely used in China to circumvent Internet censorship. It was created in 2012 by a Chinese programmer named "clowwindy", and multiple implementations of the protocol have been made available since. Shadowsocks is not a proxy on its own, but (typically) is the client software to help connect to a third-party SOCKS5 proxy. Once connected, internet traffic can then be directed through the proxy. Unlike an SSH tunnel, Shadowsocks can also proxy User Datagram Protocol (UDP) traffic.

Next.js is an open-source web development framework created by the private company Vercel providing React-based web applications with server-side rendering and static rendering.

OpenResty is an nginx distribution which includes the LuaJIT interpreter for Lua scripts. The software was created by Yichun Zhang. It was originally sponsored by Taobao before 2011 and was mainly supported by Cloudflare from 2012 to 2016. Since 2017, it has been mainly supported by OpenResty Software Foundation and OpenResty Inc.

References

  1. "Dancer2 Releases". perldancer.org. Retrieved 2024-08-15.
  2. "All About Dancer - In Conversation With Sawyer X Part 2".
  3. "Dancer 1 and Dancer 2, what we're going to do". Archived from the original on 2015-01-20. Retrieved 2015-01-20.