# Cello (web browser)

Cello is an early, discontinued graphical web browser for Windows 3.1; it was developed by Thomas R. Bruce of the Legal Information Institute at Cornell Law School. It was released as shareware in 1993. While other browsers ran on various Unix machines, Cello was the first web browser for Microsoft Windows, using the winsock system to access the Internet. In addition to the basic Windows, Cello worked on Windows NT 3.5 and with small modifications on OS/2.
Cello was created because of a demand for Web access by lawyers, who were more likely to use Microsoft Windows than the Unix operating systems supporting earlier Web browsers, including the first release of Mosaic. The lack of a Windows browser meant many legal experts were unable to access legal information made available in hypertext on the World Wide Web. Cello was popular during 1993/1994, but fell out of favor following the release of Mosaic for Windows and Netscape, after which Cello development was abandoned.
Cello was first publicly released on 8 June 1993. A version 2.0 was announced, but development was abandoned. Version 1.01a, 16 April 1994, was the last public release. Since then, the Legal Information Institute at Cornell Law School has licensed the Cello 2.0 source code, which has been used to develop commercial software.
The browser is no longer available from its original homepage. However, it can still be downloaded from mirror sites.

## Development and history

The development of Cello started in 1992, with beta versions planned for June 1993 and a release for July 1993. It was publicly announced on 12 April 1993.
The Legal Information Institute at Cornell Law School created the first law site on the Internet in 1992 and the first legal website in 1993. However, at the time, there were no web browsers for the Microsoft Windows operating system, which was used by most lawyers. Thus, to allow lawyers to use their website, the Legal Information Institute developed the first Windows-based Web browser. This was made possible by a grant from the National Center for Automated Information Research.
Although other browsers at the time were based on CERN's WWW libraries called libwww, PCs of the time were not powerful enough to run the UNIX-oriented code. As a result, Thomas Bruce had to rewrite most of the WWW libraries to work on Microsoft Windows. Unlike most commercial browsers at that time, Cello used none of Mosaic's source code and thus had a different look and feel.
Steven Sinofsky, president of the Windows division at Microsoft wrote in a June 1994 email: We do not currently plan on any other client software [in the upcoming release of Windows 95], especially something like Mosaic or Cello. Nevertheless, on 11 January 1995, Microsoft announced that it had licensed the Mosaic technology from Spyglass, which it would use to create Internet Explorer. On 15 August 1995, Microsoft debuted its own web browser Internet Explorer 1 for Windows 95. While it did not ship with the original release of Windows 95, it shipped with Microsoft Plus! for Windows 95.

## Usage

When released in 1993, Cello was the only browser for the Microsoft Windows platform. Shortly after launch, Cello was being downloaded at a rate of 500 copies per day. As such, it achieved a fair amount of use and recognition within the legal community, including a number of PC users with between 150,000 and 200,000 users. In 1994, most websites were visited using either the Cello browser or the Mosaic browser. Despite having fewer features than Mosaic, Cello continued to be used due to its simpler interface and lower system requirements. Cello was praised for being easy to install, because it wasn't necessary to install Win32s or a TCP/IP stack for Windows 3.1. Following the release of Windows 95, which offered a much better TCP/IP interface, Cello fell into disuse and was abandoned.
By 1995, Cello, like the Mosaic browser, was overshadowed by two newer browsers — Netscape and Internet Explorer — and fell into disuse. By 1999, Cello was considered to be a "historical" browser.
Cello is considered to be one of the early casualties of the first browser wars.

## Features

Cello had the following features:
* inline graphics support: GIF, XBM, PCX, and BMP.
* PostScript viewing and sound playing
* File saving and printing.
* Editing support for local files via an external editor. Integration with the HTMLAssistant Windows-based HTML helper/editor.
* File caching ad infinitum using a file-based cache with user-specified "low water mark".
* DDE and OLE drag-and-drop support. Cello can be invoked and controlled through the use of DDE macros in other programs. URL arguments on the command line are also supported.
* "Peek mode", permitting partial retrieval of files of large or unknown size.
* Local file mode for HTML delivery on standalone machines or machines with LAN connections only.
* Support for HTML "mailto:" scheme with integrated email sending client.
* Support for the full HTML+ ISO-LATIN character set, including specialized legal symbols, foreign characters, etc.
* User-selectable sound players, viewers, editor, and Telnet and TN3270 clients.
* Comprehensive online documentation in Windows Help format.
* Simple user interface.
* Fully extensible support for viewing downloaded files in an unlimited number of PC-binary file formats using the standard Windows Associate... scheme.
* Bookmarks
* Local browsing
* Simpler interface (compared to Mosaic)
Unlike Mosaic, Cello did not have toolbar buttons, and instead commands were accessed through pull-down menus.

### Supported Protocols

Cello supported the following protocols: HTTP 1.0, Gopher (but not Gopher+), read-only FTP, SMTP mailing, Telnet, Usenet, CSO/ph/qi directly and WAIS, HyTelnet, TechInfo, Archie, X.500, TN3270 and a number of others through public gateways.

### Supported FTP servers

Cello supported the following FTP servers: most Unix servers (including SunOS, System V, and Linux), IBM VM, VMS systems, Windows NT, QVTNet, NCSA/CUTCP/Rutgers PC servers, FTP Software PC server, HellSoft NLM for Novell.

### Internet Connection

Cello works best with a direct Ethernet connection, but it also supports SLIP and PPP dialup connections through the use of asynchronous sockets. Cello has an integrated TCP/IP runtime stack.

## Release history

The following versions were released:
16-bit Cello Releases :
| Version | Date | Development cycle | Exe size (in kb) | Download | Notes |
| 0.1 | 8 June 1993 | Beta | 347 | evolt Archived 10 April 2021 at the Wayback Machine | Requires Distinct to run |
| 0.2 | 14 June 1993 | Beta | ? | ? | Changelog |
| 0.3 | 16 June 1993 | Beta | ? | ? | Changelog |
| 0.4 | 18 June 1993 | Beta | ? | ? | Changelog |
| 0.5 | 24 June 1993 | Beta | ? | ? | Changelog |
| 0.6 | 30 June 1993 | Beta | ? | ? | Changelog |
| WINSOCK alpha r3 | 6 September 1993 | Alpha | 374 | | Double click to visit link, right click to show url. Browser request contain only a GET line. Doesn't support redirections |
| WINSOCK alpha r6 | 14 October 1993 | Alpha | 362 | (cello-ws.zip) | Browser request contain only a GET line. Doesn't support redirections |
| 0.8 | 5 November 1993 | Beta | — | — | Changelog (Distinct version discontinued) |
| 0.9 | 12 November 1993 | Beta-pre | ? | ? | |
| 0.9 | 16 November 1993 | Beta | 487 | | Changelog. GET requests use presently invalid protocol version. Redirections are supported. Crashes on pages with unsupported image files |
| 0.9 | 22 November 1993 | WINSOCK alpha r9.2 | 494 | | Issues from 0.9 beta still present. New issue: in img tag, src must be the last attribute |
| 1.0 | 17 February 1994 | Release | ? | evolt Archived 10 April 2021 at the Wayback Machine | |
| 1.01 | ? | Release | ? | ? | |
| 1.01a | 17 March 1994 | release | 521 | , evolt Archived 10 April 2021 at the Wayback Machine | Cello's splash screen. Note that the image is not that of a cello, but rather a viola da gamba, its aristocratic predecessor Changelog |
| 2.0 | — | Alpha | — | — | A screenshot of Cello 2.0 in development. development ceased, first version to support HTML forms |
Although Cello 2.0 had been announced, development ceased before a public release.
IBM released a fix for their TCP/IP V2.0 stack so that Cello would work with OS/2 WinOS/2 on 9 February 1994.

## Browser comparison table

The following table shows how Cello compared to browsers of its time.
Comparison of Web Browsers :
| Browser | Browser | Cello | NCSA X-Mosaic | NCSA Mosaic | Netscape Navigator | Spyglass Mosaic | AIR Mosaic | InternetWorks | Win-Tapestry | IBM WebExplorer |
| Operating system | Operating system | Win | UNIX | Win | Win | Win | Win | Win | Win | OS/2 |
| Version | Version | 1 | 2.4 | 2.0 alpha 3 | 1 | 1.02 | 3.06 | Beta 4 | 1.67 | 0.91 |
| proxy | proxy | No | Yes | No | Yes | Partial | Yes | Yes | Partial | Partial |
| extended html | extended html | No | No | No | Yes | No | No | No | No | No |
| Performance |
| Performance | multithreading | No | No | No | Yes | No | No | Yes | Yes | No |
| Performance | dynamic linking | No | No | No | Yes | No | No | Yes | No | No |
| Performance | deferred image | No | No | No | Yes | No | Yes | Yes | Yes | No |
| Performance | multi-pane | No | No | No | No | No | No | Yes | No | No |
| Performance | multi-window | No | No | No | No | No | No | No | Yes | No |
| Configurability |
| Configurability | kiosk mode | No | No | No | No | No | Yes | No | No | Yes |
| Configurability | external players | Yes | No | No | Yes | No | No | Yes | Yes | Yes |
| Integration |
| Integration | d&d to clipboard | No | No | No | No | No | Yes | No | Yes | No |
| Integration | spawnable players | No | Partial | Partial | Yes | Partial | Yes | Yes | Partial | Yes |
| Integration | search engine(Find) | Yes | No | No | Yes | No | No | No | No | No |
| Navigation |
| Navigation | hotlist | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
| Navigation | bookmark | Yes | No | No | Yes | No | No | No | Yes | No |
| Navigation | folders | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No |
| Navigation | categories (tags) | No | No | No | No | No | No | No | Yes | No |
| Navigation | menu/button bar | No | No | Yes | No | No | Yes | No | No | No |
| Navigation | import | Yes | No | No | Yes | No | Yes | No | Yes | No |
| Navigation | export | Yes | No | No | Yes | Yes | Yes | No | No | No |
| Navigation | annotation | No | Yes | Yes | Yes | No | No | No | Yes | No |
| Navigation | auto time stamp | No | No | No | Yes | No | No | No | No | No |
| Source: Berghel, Hal (1996). "The client's side of the World-Wide Web". Communications of the ACM. 39 (1): 30–40. doi:10.1145/234173.234177. ISSN 0001-0782. S2CID 2003788. |||||||||||

## Derivatives

* The first edition of BURKS, a project to produce non-profit CD-ROMs of resources for students of Computer Science, was based on Cello.
* InterAp, by California Software Inc, was based on Cello and featured a web browser with Telnet, FTP, and a Visual Basic-compatible scripting language called NetScripts.
* A version of Lovelace came bundled with Cello.

## Technical

While originally Cello required the Distinct Corporation's TCP/IP stack, with the release of Cello Beta Version .8, Cello dropped support for Distinct, and became exclusively Winsock-based.
Originally, although Cello could run on OS/2, OS/2's implementation of Winsock had bugs that prevented Cello from accessing the Internet. The bug, APAR #PN52335, was later fixed allowing Cello to properly work on OS/2.
The user agent for Cello is LII-Cello/<version> libwww/2.5.

### DDE support

Cello featured Dynamic Data Exchange (DDE) support. OLE support and DDE client support were planned, but never released.
An example of how to invoke Cello from a Microsoft Word macro:

## System requirements

Cello has the following system requirements:
* Processor: 80386(386SX) at 16 MHz or better
* Operating system: Windows 3.1 / 3.11 / Windows NT 3.5 / OS/2.
* Ram: 2 MB RAM, 4 MB RAM recommended
* A TCP/IP connection running Winsock

## Criticism

Cello was not very stable and its development halted early.
Cello did not render graphics well and required that the user reload the webpage when resizing the window. Like most browsers at the time, Cello also did not support any web security protocols. It was also said that Cello rendered html "crudely" and pages would appear jaggedly.
Cello also had sub-par performance in accessing the Internet and processing hypermedia documents.