Coder Social home page Coder Social logo

js-curses's Introduction

js-curses

js-curses is an attempt at porting the ncurses library to the web browser. ncurses is a library that allows a terminal application to make use of some "visual" settings: color, text alignment on screen, more interactive user input, etc. Examples of applications that use ncurses are Emacs and Vim.

For now, only Firefox and Google Chrome are supported.

This project is still under development. As such, the API is still subject to change.

Goal

The goal was to make the syntax as close to that of the original ncurses library, where possible. This means, among other things, using C-like naming conventions, and duplicating the original function names where possible. Thus, C's old underscore_identifiers are used instead of JavaScript's conventional camelCaseIdentifiers for function names, variable names, etc.

Compiling & Running

This project contains a Gruntfile.js, which allows automation of tasks for this project, assuming the grunt-cli package is installed from the npm. As root, you can run:

npm install -g grunt-cli
npm install

The source files are distributed in the src/ directory, and the compiled, unminified JavaScript is in the dist/ directory. In order to recompile the source files after a change, you may run the command:

grunt # or grunt concat

If you want to automatically recompile everytime a file in the src/ directory, use this command in a separate terminal, and let it run (or detach it from the terminal):

grunt watch   # without detaching
grunt watch & # with detaching

In order to view a demo of the js-curses library, simply open demo/index.html in a web browser.

TODO

  • Add mouse support
  • Implement echo(), noecho()
  • Implement endwin(), delwin()
  • Improve bkgd()
  • Improve keyboard events
  • Port rendering from Canvas2D to WebGL
  • Add elements to the demo page

js-curses's People

Contributors

6112 avatar

Stargazers

George MacKerron avatar Szloboda Zsolt avatar

Watchers

James Cloos avatar  avatar

Forkers

z5ottu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.