perl-executing-browser icon indicating copy to clipboard operation
perl-executing-browser copied to clipboard

HTML interface for Perl 5 desktop applications :dromedary_camel:

Perl Executing Browser

GitHub Version GitHub License Travis CI Build Status

Perl Executing Browser (PEB) is an HTML5 user interface for Perl 5 desktop applications. It is a C++ Qt 5 application running local Perl 5 scripts as child processes without server. Inspired by Electron and NW.js, PEB is another reuse of web technologies in desktop applications with Perl doing the heavy lifting instead of Node.js.

PEB Screenshot

Contents

  • Quick Start
  • Design Objectives
  • Features
  • Security
  • Limitations
  • REQUIREMENTS
    • Compile-Time Requirements
    • Runtime Requirements
  • FILES AND FOLDERS
    • Application Executable
    • Application Files and Folders
  • SETTINGS
    • Global Settings API
    • Perl Scripts API
    • Files and Folders Dialogs API
  • INTERACTIVE PERL SCRIPTS
    • PEB Interactive Perl Scripts
    • Requirements for Interactive Perl Scripts
    • Examples of Interactive Perl Scripts
  • APPIMAGE SUPPORT
    • PEB AppImager
    • PEB AppImage Configuration Files
    • PEB AppImage Builder Docker Container
    • AppImageHub
  • Logging
  • History
  • License
  • Thanks and Credits
  • Authors

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL"
in the documentation of this project are to be interpreted as described in RFC 2119.

Quick Start

  • 1. Download the PEB Demo Application.
    64-bit Linux single-file AppImage executable and
    32-bit Windows ZIP archive are available.
    They include everything you need to start developing PEB-based applications.

  • 2. Unpack:

    64-bit Linux:

    ./peb-demo-*.AppImage --appimage-extract
    

    Windows:
    Unzip using any Windows unzip utility.

  • 3. Optionally install any CPAN modules you may need:

    64-bit Linux:

    cd squashfs-root/resources/app/perl/bin
    ./perl ./cpanm YourModule
    

    Windows - from the extracted peb-demo directory:

    cd resources\app\perl
    .\portableshell.bat
    cpanm YourModule
    
  • 4. Write your Perl application reading user input on STDIN:

    my $input = <STDIN>;
    chomp $input;
    
  • 5. Write a {PEB_executable_directory}/resources/app/index.html with
    a settings JavaScript object for every Perl script you want to use.
    Start local Perl scripts by clicking a link or submitting a form to a special URL.
    Select files or folders with their full paths by clicking a link to a special URL.

  • 6. Optionally change the PEB AppImage configuration files.

  • 7. Optionally pack your application:

    64-bit Linux - from the extracted squashfs-root directory:

    export VERSION="X.X.X" && ./appimager.sh
    

    The resulting AppImage will be produced in the squashfs-root directory.

    Windows:
    Zip your PEB-based application using any Windows zip utility.

Design Objectives

  • 1. Easy and beautiful graphical user interface for Perl 5 desktop applications
  • 2. Fast and zero-installation software
  • 3. Cross-platform availability
  • 4. Secure solution with no server
  • 5. Maximal reuse of existing web technologies and standards

Features

  • PEB can be started from any folder without installation procedure.
  • Perl script output is seamlessly inserted in a nice HTML user interface.
  • Event-driven interactive Perl scripts can be repeatedly fed with data.
  • Any version of Perl 5 can be used.
  • Single file or multiple files, new filename, existing or new directory can be selected by user.
  • Unified logging of Perl and JavaScript errors in the JavaScript console
  • Optional warning for unsaved data in HTML forms
  • Optional labels for all JavaScript popup boxes and context menus
  • Optional icon for the main window and all dialog boxes

Security

  • PEB does not need administrative privileges or installation procedure.
  • PEB does not need and does not implement any server.
  • Local Perl 5 scripts are executed with no sandbox and they have access to full file paths.
  • Calling local Perl scripts from web pages is blocked.
  • Files or folders can not be selected with their full paths from web pages.
  • Cross-site scripting is disabled.

Limitations

  • No Perl scripting inside frames
  • Limited HTML5 support
  • No pop-up windows
  • No file downloads
  • No printing

Logging

PEB has unified logging of JavaScript and Perl errors in the JavaScript console.
Press Ctrl + I to open the QWebInspector and go to the Console tab.

History

PEB was started in 2013 by Dimitar D. Mitov as a simple user interface for personal database applications.

Thanks and Credits

License

This program is free software;
you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License,
as published by the Free Software Foundation;
either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Authors

Dimitar D. Mitov, 2013 - 2020
Valcho Nedelchev, 2014 - 2016