Here are comments about a number of Javascript Libraries I use/intend to use.

Compiler compilers

I started using ANTLR, but the javascript support is not very strong, so I turned to PEGJS, which seems to do what I need. PEGJS is full Javascript, even the generator.

Graphics

Lots of choices around. Not yet tested. I list the points which are important to me for writing hieroglyphic software, so your milleage may vary a lot.

FabricJS

  • svg support: yes
  • constructive geometry: can tell if two shapes intersect (with a very simple algorithm: transform them into polygons, and check lines intersect). Note that it doesn't tell if a shape is contained in another one.
  • compute size of svg picture:

D3

  • svg support:
  • compute size of svg picture:

Raphaël

  • svg support: can't load svg pictures

Snap.svg

Made by the original author of Raphaël, taking advantage of modern browsers SVG support.

  • svg support: can load SVG pictures
  • constructive geometry: can use shapes as masks for other shapes.
  • compute size of svg picture:

Kevin Lindsey website

Kevin Lindsey has a great site on SVG, with much javascript code, and in particular a huge list of intersection routines.

OpenType JS

A nice opentype/truetype font library. It can do many things, such as interpreting ligatures correctly (which java/Swing doesn't do in the general case, for instance).

International Image Interoperability Framework

Huge framework for displaying and processing pictures on the Web. Manages very high resolution pictures.

Clients are usually using javascript, but servers are available in a number of languages.

A number of examples are available to browse.

Open layers

Rich Library (one among many others) for Map manipulation and annotations.

Natural Language Processing and text-related stuff

Annotator

Generic annotation framework... looks cool. I need to test it someday.

Cléa

Another annotation tool, from the University of Caen.

Marginalia

Side-margin annotation tool library.

Varia

CodeMirror

Javascript library for implementing inline code editors.

Previous Post