Skip to main content

Terminals served to term.js using Tornado websockets

Project description

This is a Tornado websocket backend for the term.js Javascript terminal emulator library. It evolved out of pyxterm.

Modules:

  • terminado.terminals: controls launching virtual terminals, and connecting them to Tornado’s event loop.

  • terminado.websocket: Provides a websocket handler for communicating with a terminal.

  • terminado.uimodule: Provides a Terminal Tornado UI Module.

JS:

  • terminado/_static/terminado.js: A lightweight wrapper to set up a term.js terminal with a websocket.

Usage example:

import os.path
import tornado.web
import tornado.ioloop
# This demo requires tornado_xstatic and XStatic-term.js
import tornado_xstatic

import terminado
STATIC_DIR = os.path.join(os.path.dirname(terminado.__file__), "_static")

class TerminalPageHandler(tornado.web.RequestHandler):
    def get(self):
        return self.render("termpage.html", static=self.static_url,
                           xstatic=self.application.settings['xstatic_url'],
                           ws_url_path="/websocket")

if __name__ == '__main__':
    term_manager = terminado.SingleTermManager(shell_command=['bash'])
    handlers = [
                (r"/websocket", terminado.TermSocket,
                     {'term_manager': term_manager}),
                (r"/", TerminalPageHandler),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler,
                     {'allowed_modules': ['termjs']})
               ]
    app = tornado.web.Application(handlers, static_path=STATIC_DIR,
                      xstatic_url = tornado_xstatic.url_maker('/xstatic/'))
    app.listen(8765)  # Serve at http://localhost:8765/
    try:
        tornado.ioloop.IOLoop.instance().start()
    finally:
        term_manager.shutdown()

See the demos directory for more examples. This is a simplified version of the single.py demo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

terminado-0.1.tar.gz (9.6 kB view details)

Uploaded Source

File details

Details for the file terminado-0.1.tar.gz.

File metadata

  • Download URL: terminado-0.1.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for terminado-0.1.tar.gz
Algorithm Hash digest
SHA256 996b9420bc33abb48c3212e865d41b472a66bfa36e9d4c2cee491082dbefdced
MD5 1592d98b3e963d3bd6f87d475134bf6f
BLAKE2b-256 d5b876ba9f6328ec5fd35b20bf8514bf5677dfde6880f6c838eebaf2a9a8b4ed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page