• Home >>
  • Curl - The Curl RTE
Curl, Inc. Logo
Richer Internet Applications
      Introducing Curl
      The Curl RTE
         System Requirements
         Installation Notes
         Mac Beta Notes
      The Curl IDE
         System Requirements
         Installation Notes
      White Papers
      Getting a License
         Enterprise Software
         Fun and Games
      Application Scenarios
         Migration to Curl
         Portals & Dashboards
         Electronic Forms

The Curl RTE

The Curl runtime environment (RTE) is the runtime engine that executes Curl applications and renders the resulting content on a client machine. The Curl RTE is provided free of charge and you need to install it on your client machine before using Curl applications on that machine.

You can download the Curl RTE installer from here.

The Curl RTE is the foundation for the Curl platform, which supports highly interactive Web-deployed applications that benefit from high run-time performance, powerful user interface capabilities, an advanced security architecture, and the ability to connect with other computers using industry-standard protocols and data formats.

High Performance and Robust Operation

The Curl RTE contains a just-in-time compiler that compiles applications expressed using the Curl content language into native code that executes with the full performance of the client machine. Thus, it is the Curl RTE that ultimately implements key features of the Curl platform such as Curl's object-oriented architecture, namespace control using packages, compile-time type checking, etc. The Curl RTE also includes a garbage collector to ensure safe, efficient management of memory. These features, in turn, support the high run-time performance and industrial-strength software engineering capabilities that are key reasons for choosing the Curl platform.

Multimedia Features

The Curl RTE has includes a powerful collection of multimedia capabilities:

  • The 2D graphics library provides access to sophisticated, hardware-accelerated rendering capabilities including the ability to handle translucency and to do antialiased rendering. There is also a library for displaying images and performing various filtering operations on them.

  • The 3D graphics library supports both immediate mode (low-level rendering operations) and retained mode ("scene") operation. Again, it can exploit the hardware acceleration provided by the graphics hardware on the client machine.

  • Event-based interactions can be scripted easily and concisely using the on statement for specifying event handlers.

  • Built-in timers and animation features make it easy to produce dynamic behaviors and displays.

  • Audio data may also be created and played by applications executing under the Curl RTE.

These basic features can be used directly in Curl applications. These features also support the higher-level user interface capabilities described next.

The Curl GUI System

The ability to create dynamic, responsive, sophisticated user interfaces is a key attraction of the Curl platform. This capability is supported by several features of the Curl GUI library:

  • Much as in HTML, 2D graphical layouts using the Curl GUI library can be constructed in a declarative style, where the structure of the code mirrors the structure of the graphical layout. A powerful "elastics" system makes it easy to build layouts that adapt to the size of the window in which they are displayed, so users can be in control of the use of their screen real estate.

  • Graphical layout, text formatting, and event handling are all possible without subclassing or other advanced programming. This, along with the declarative style discussed above, promotes rapid development of application user interfaces.

  • The Curl GUI library includes controls, dialogs, and layout objects offering all the capabilities of HTML controls and HTML forms, plus more.

  • The GUI system is fully internationalized, including the capability for text entry and display using Asian languages such as Chinese, Japanese, and Korean.

The GUI system is a good example of the Curl platform design philosophy. Beginners will find it to be a very comfortable, yet powerful, interface to the many multimedia capabilities of the Curl platform without requiring advanced programming skills. Advanced programmers, however, will find that Curl's object-oriented architecture enables powerful customizations of the provided GUI object types.

Advanced Security Control

A mobile-code platform such as Curl must guarantee secure operation of applications that come from sources that may not be fully trusted. The platform must run applications in a secure "sandbox" that guarantees the application will not take actions that could steal or damage information on the client machine, or damage the machine itself.

By default, Curl applications loaded from the Web are treated as unprivileged, providing a maximum level of security. Trusted sites (such as a site hosting an enterprise's internal applications) can be designated using the Curl Control Panel that controls the Curl RTE; applications from trusted sites can then be executed with privileges to do anything that another application on the client machine could do. Importantly, system administrators in an enterprise can take over the specification of privileged locations and prevent individual client machine users from changing the specified policy. This provides an enterprise with the tools to ensure secure operation using Curl without having to train every computer user about details of the enterprise's security policies.

Curl Control Panel

Curl Control Panel,
Security Options screen

The Security Options tab in the control panel provides control over security policies.

Curl Connectivity

The Curl RTE supports a full range of network protocols and associated concepts including HTTP, HTTPS, cookies, TCP/IP, SOAP, and WSDL. XML data can be processed using the integrated XML parser. Unicode is Curl's internal standard for character data representation; transcoding is supported between Unicode and external formats like UTF-8 and UTF-16, as well as locale-specific formats such as SHIFT-JIS, EUC-JP, and the various ISO-LATIN formats. A simple HttpForm API makes it easy to create forms that interact with server-side code that was designed to take input from an HTTP form.

Since Curl applications, like HTML pages, can be delivered to the client machine as source code, Curl is compatible with server-side technologies such as PHP that dynamically create individualized pages based on the details of a user's session.

Because of its wide coverage of connectivity standards, Curl applications can work with any server-side architecture, including pre-existing legacy servers as well as modern server frameworks such as J2EE or .Net. Similarly, the Curl RTE can consume data from any database, Web service, or data feed, including real-time data feeds. A well-developed RecordSet API is provided in the Curl RTE to enable an effective representation of database data once it has been received on the client machine.