Hubbry Logo
Curl (programming language)Curl (programming language)Main
Open search
Curl (programming language)
Community hub
Curl (programming language)
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Curl (programming language)
Curl (programming language)
from Wikipedia
Curl
Paradigmsmulti-paradigm: object-oriented, markup
Designed bySteve Ward, MIT
DeveloperCurl, Inc., Sumisho Computer Systems Corp., SCSK Corporation
First appeared1998; 27 years ago (1998)
Stable release
8.0.13 / 6 September 2022; 3 years ago (2022-09-06)
Typing disciplinestrong
OSWindows
LicenseCurl license www.curl.com/products/license/
Websitewww.curl.com
Dialects
none
Influenced by
HTML, JavaScript, Lisp
  • Curl at Wikibooks

Curl is a reflective object-oriented programming language for interactive web applications, whose goal is to provide a smoother transition between content formatting and computer programming. It makes it possible to embed complex objects in simple documents without needing to switch between programming languages or development platforms. The Curl implementation initially consisted of an interpreter only; a compiler was added later.

Curl combines text markup (as in HyperText Markup Language (HTML)), scripting (as in JavaScript), and heavy-duty computing (as in Java, C#, or C++) within one unified framework. It is used in a range of internal enterprise, business-to-business (B2B), and business-to-consumer (B2C) applications.

Curl programs may be compiled into Curl applets, that are viewed using the Curl RTE, a runtime environment with a plugin for web browsers. Currently, it is supported on Microsoft Windows. Linux, and macOS was dropped on March 25, 2019 (starting with version 8.0.10).[1] Curl supports "detached applets", which is a web deployed applet which runs on the user's desktop independent of a browser window much as in Microsoft Silverlight 3 and Adobe AIR.

Architecture

[edit]

The Curl language attempts to address a long-standing problem: the different building blocks that make up any modern web document most often require wildly different methods of implementation: different languages, different tools, different frameworks, often completely different teams. The final, and often most difficult, hurdle has been getting all of these blocks to communicate with each other in a consistent manner. Curl attempts to side-step these problems by providing a consistent syntactic and semantic interface at all levels of web content creation: from simple HTML to complex object-oriented programming.

Curl is a markup language like HTML—that is, plain text is shown as text; at the same time, Curl includes an object-oriented programming language that supports multiple inheritance. Curl applications are not required to observe the separation of information, style, and behavior that HTML, Cascading Style Sheets (CSS), and JavaScript have imposed, although that style of programming can be used in Curl if desired.

While the Curl language can be used as an HTML replacement for presenting formatted text, its abilities range all the way to those of a compiled, strongly typed, object-oriented system programming language.[2] Both the authoring (HTML-level) and programming constructs of Curl can be extended in user code. The language is designed so Curl applications can be compiled to native code of the client machine by a just-in-time compiler and run at high speed. Curl applets can also be written so that they can run off-line when disconnected from a network (occasionally connected computing). The Curl IDE is an application written in Curl.

Syntax

[edit]

A simple Curl applet for a "Hello, World!" program might be:

 {Curl 7.0, 8.0 applet}
 {text
    color = "blue",
    font-size = 16pt,
    Hello World}

This code will run if the user has at least one of the Curl versions 7.0 or 8.0 installed.

Curl provides both macros and text-procedures in addition to anonymous procedures and named methods. An alternative using the text-procedure paragraph would be:

 {paragraph
    paragraph-left-indent=0.5in,
    {text color = "red", font-size = 12pt,
      Hello}
    {text color = "green", font-size = 12pt,
      World}}

Recently this style of layout has been adopted by "builders" in the Groovy language for the Java virtual machine (JVM), but is also familiar to users of CSS or Tcl/Tk. Most features for web applications now implemented through combinations of JavaScript libraries + HTML + CSS are already found within the Curl language, including features usually associated with Prototype + script.aculo.us such as accordion panes.

Curl sets callbacks in the manner also adopted by Groovy:

 {CommandButton width=100pt,
    height = 50pt,
    label = {center {bold Invokes an event handler when clicked}},
    control-color = "orange",
    || Attach the following event handler to this CommandButton
    {on Action do
        {popup-message
            title = "Your Message",
            "This is a user message dialog."
        }
    }}

Curl comments use the vertical bar in several variations. The simplest is as follows:

 {text A comment can be on a line by itself,
 || A comment on a line by itself
 or it can be at the end || A comment on the same line as code
 of a line.}

As lightweight markup

[edit]

Because Curl provides for both user-defined text procedures and style sheets, it can be used readily as domain-specific lightweight markup. A major advantage over plain text HTML markup is that the text encoding can be set to UTF-8, and text entered in a Unicode-enabled text editor with no escaping of characters (like JavaScript, Curl is Unicode friendly). A poetry example is:

 {poem || wraps entire poem
    {stanza  || first verse here in any language
    }
    {stanza  || another verse here in any language
    }
 }

which can initially be implemented by defining the poem and stanza markup as paragraph text formats. Stanza could be further refined to include a hidden navigation anchor for page navigation using the Curl {destination} which is itself a text procedure.

The same markup can be used for different results, as one can style text to be visible in one context and invisible in another. Curl also permits top-level file inclusion so that a source text in markup can be included in different parent files. In education, for example, one could create a source file of test questions, and include it in both a student and a teacher version of the text.

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
Curl is a reflective, designed for developing interactive and applications, integrating declarative markup for presentation, for logic, and advanced features like strong typing and event handling into a unified syntax to simplify from simple documents to complex . Originating from research at the Massachusetts Institute of Technology (MIT) in 1995, Curl was developed by a team led by Steve Ward, David Kranz, and Chris Terman as part of efforts to create a more powerful that addressed the limitations of early technologies like and by combining their strengths in a single, extensible framework. The draws inspiration from in its prefix notation using curly braces and emphasizes client-side execution for responsive applications, with built-in security mechanisms such as a sandbox for untrusted code. Commercialized through Curl Corporation, founded to advance the technology, it was acquired in 2004 by Sumisho Computer Systems Corporation (now ), which has continued its evolution as a platform for rich internet applications (RIAs). Key features of Curl include its multi-paradigm approach, supporting text markup similar to for layout, object-oriented constructs akin to for modularity, and like for interactivity, all within a single file to reduce development complexity and maintenance overhead. It enables high-performance rendering, including 3D graphics and , through a runtime engine (RTE) that executes on client devices on Windows platforms. The language's design promotes a "gentle " from simple to large-scale programming, with strong typing to catch errors early and support for reusable components. As of 2025, Curl remains actively maintained by , with recent releases such as Curl RTE 8.0.15 in October 2025 enhancing stability and compatibility for enterprise use, particularly in where it powers internal web applications and cross-platform development. Despite competition from modern web standards like and frameworks, Curl's integrated approach continues to serve niches requiring robust, secure, and performant web UIs without multiple language silos.

History

Origins at MIT

The Curl programming language originated as a research project at the Massachusetts Institute of Technology's Laboratory for Computer Science (LCS) in 1995, conceived by Steve Ward and Mat Hostetter to address the fragmentation in web content creation tools of the era. At the time, web development relied on disparate technologies such as for markup, for client-side scripting, and server-side languages for computation, creating steep learning curves and integration challenges. The project, supported by funding from 1995 to 1998 under contract DABT63-95-C-0009, aimed to develop a unified language that would enable a seamless "gentle slope" progression from simple document authoring to full-fledged programming, allowing developers to handle everything from formatted text to interactive applets within a single framework. Early prototypes focused on bridging these web content layers, with research goals centered on creating a semantically consistent system that integrated markup, procedural code, and data representation without syntactic discontinuities. Key contributors included David Kranz, who adapted compiler technology from prior MIT work on the T language, Cotton Seed, and Chris Terman, all under Ward's leadership at LCS. These prototypes emphasized extensibility and performance, enabling smoother transitions between static content like equivalents and dynamic elements akin to or backend computing. An initial MIT implementation was developed by Kranz, demonstrating core capabilities though no longer maintained. The first public demonstration of Curl occurred in 1997, when Steve Ward presented the language at a seminar in , highlighting its potential to accelerate by unifying content layers. Technical reports from this period, such as the 1997 paper "Curl: A Gentle Slope Language for the Web" published in the Journal (Volume 2, Issue 2), detailed the project's foundations and early findings by Hostetter, Kranz, Seed, Terman, and Ward. Among the key innovations in these MIT prototypes were a reflective object model, which allowed runtime inspection and modification of objects through first-class types and introspection for enhanced debugging and extensibility; support for multiple inheritance in the class-based system, enabling flexible code reuse with protection attributes; and just-in-time (JIT) compilation, featuring a platform-independent front end paired with back ends that generated native code incrementally for applet performance and portability. These features laid the groundwork for Curl's object-oriented and reflective architecture, prioritizing conceptual unity over isolated web technologies.

Commercial Development and Acquisitions

Curl Corporation was established in as a spin-off from MIT to commercialize the Curl programming language, founded by a team of researchers including Steve Ward, who served as CTO, and . The company focused on developing Curl into a commercial product for rich internet applications, securing over $70 million in venture funding and research grants by 2002, including a $17.9 million fourth-round led by investors such as Baker Capital. This funding supported the transition from academic research to market-ready tools, emphasizing Curl's potential for unified web content creation. In April 2001, Curl Corporation released its first commercial product, Curl Surge 1.0, a software environment enabling client-side computing for interactive web applications with reduced server loads and smaller download sizes. The acquisition of Curl Corporation by Sumisho Computer Systems Corporation (), a Japanese software firm, occurred in 2004, integrating the technology into SCS's portfolio and facilitating expansion into the Japanese market through rebranding and localized development efforts. In October 2011, SCS merged with CSK Corporation to form , a subsidiary of , which assumed full ownership and ongoing maintenance of Curl. Under , Curl continued to evolve, with major releases such as version 7.0 in 2013, which enhanced graphics capabilities and added support for to improve RIA performance. As of 2025, maintains Curl, with the latest updates including Curl RTE 8.0.15 released in October 2025.

Design Principles

Unified Markup and Code Architecture

Curl's unified markup and code architecture represents a hybrid design that embeds declarative markup for elements—analogous to or XML—directly within procedural code, eliminating the need for separate files and enabling a seamless blend of presentation and logic in a single source file. This integration allows developers to intermix formatted text, graphical layouts, and executable instructions without syntactic discontinuities, fostering a consistent for creating both static content and dynamic applications. By treating markup as programmable constructs, Curl avoids the layering issues common in traditional web technologies, where separate languages like and create maintenance overhead. At the core of this architecture is a reflective object-oriented model where all elements, including text, images, and code segments, are represented as first-class objects inheriting from a base Graphic class, complete with and modification capabilities at runtime. This model supports , parameterized types, and a type lattice that enables extensible graphical hierarchies, allowing properties like font styles or layouts to propagate through object trees via nonlocal options. The reflective nature permits dynamic inspection and adaptation of objects, enhancing flexibility for building interactive user interfaces while maintaining strong static typing for reliability. The compilation process involves just-in-time (JIT) translation of source code to native machine code, ensuring high performance through incremental and tailored for document-like applications. Source code is processed into executable form without an intermediate explicitly detailed in foundational descriptions, but with caching mechanisms to optimize repeated compilations and support . This approach underpins Curl's portability and safety, compiling locally to leverage platform-specific optimizations while encapsulating programs for secure execution. Curl employs an model for deployment, packaging self-contained units that function as executable , downloadable via HTTP and runnable in a sandboxed environment provided by the Curl RTE. These applets support versioning for compatibility, offline execution through client-side data persistence, and security restrictions that limit untrusted code to a controlled "bigger sandbox" without user prompts, while allowing administrative grants for enhanced privileges. This model facilitates network-efficient delivery and disconnected operation, aligning with web standards like XML and . The architecture's primary goals center on reducing impedance mismatch between content presentation, procedural logic, and deployment layers, creating a "gentle slope" that scales effortlessly from simple formatted pages to enterprise-scale applications. By unifying markup, scripting, and object-oriented features in one language, Curl minimizes context-switching for developers and promotes client-side computation to offload servers, ultimately aiming for a platform that excels across the full spectrum of web content needs.

Object-Oriented and Reflective Features

Curl supports object-oriented programming through a class-based model that incorporates multiple inheritance, allowing a class to derive from more than one superclass to facilitate complex hierarchies and reusable designs, such as in GUI components where a class like TabContainer inherits from both Control and Box. This feature enhances modularity by enabling developers to compose behaviors from diverse parent classes without redundant code. Reflective capabilities in Curl provide runtime introspection and manipulation of object metadata, treating types as first-class values that can be queried and used dynamically. For instance, the {typeof v} operator returns the most specific type of a value v, while {isa t v} checks if v belongs to type t, supporting dynamic type testing and instance creation via the reflection API. These mechanisms allow programs to inspect class hierarchies and adapt behaviors at runtime, particularly for trusted code, promoting flexible and extensible applications. Curl's metaprogramming facilities include procedural and hygienic macros, which function as rewrite rules to generate code and extend the language's syntax. Developers can define custom macros to embed domain-specific languages, such as logic-programming constructs, within Curl applications, while built-in operators like if are implemented as macros for consistent extensibility. This approach enables powerful code generation and customization without altering the core compiler. Event-driven programming is integrated into Curl's object-oriented framework through declarative event handling, supporting callbacks for user interactions and asynchronous operations. The on expression, for example, attaches handlers to events like PointerEnter on graphical objects, such as {on PointerEnter at v:VBox do set v.background = "orange"}, allowing responsive, non-blocking behaviors in interactive . This ties seamlessly into the OO model, where events propagate through object trees for efficient handling. Exception handling in Curl follows a hierarchical model similar to C++ and Java, using try/catch blocks to intercept and propagate errors during execution. Exceptions interrupt normal flow to invoke specialized handlers, ensuring robust error management in large-scale applications. Modularity is further supported by a package system that creates separate naming environments, with dynamic and static imports allowing controlled and isolation to build scalable, maintainable systems. Nested code blocks and lexical scoping complement this by enforcing visibility rules within modules.

Syntax and Language Elements

Basic Syntax and Constructs

Curl's basic syntax revolves around expressions enclosed in curly braces {} for evaluation, with top-level text and code intermixed in . Expressions are evaluated from left to right, and variables are declared using the let or def keywords, allowing for local, global, or class scoping. Local variables are confined to the enclosing code block, while global variables declared at the top level persist throughout the unless overridden. The language supports primitive data types such as int for integers, double for floating-point numbers, String for text, char for single characters, and bool for boolean values. Collections include ordered arrays accessed by index and hash tables for key-value pairs, enabling efficient storage and retrieval. User-defined types can be created via classes, extending the type system for custom objects. Type can be explicitly specified during declaration (e.g., {let x:int = 5}) or inferred, defaulting to any for let declarations. Control structures include conditionals and loops for procedural flow. The if expression evaluates a condition and executes a code block if true, optionally with else or elseif clauses for alternatives: {if condition then block1 else block2}. For example, {if x > y then {message.add "x is larger"} else {message.add "y is larger"}} adds a based on the comparison. Loops feature for for iterating over ranges or containers (e.g., {for i:int = 0 to 5 do {message.add i}}), while for condition-based repetition ({while condition do block}), and until for repeating until a condition holds. Procedures, Curl's functions, are defined with define-proc, specifying parameters, return type, and body: {define-proc {procedure-name param:type}:return-type {body}}. Parameters are passed by value, with local scoping for inner variables shadowing outer ones. For instance, {define-proc {factorial n:int}:int {if n == 1 then 1 else n * {factorial n - 1}}} computes the factorial recursively. Procedures can be anonymous or assigned to variables for higher-order use. A simple "Hello, World!" example demonstrates basic output in an :

{Curl 8.0 applet} {let greeting:String = "Hello, World!"} {text Hello, World!}

{Curl 8.0 applet} {let greeting:String = "Hello, World!"} {text Hello, World!}

This declares a variable and displays the text, with default formatting applied. Operator precedence follows a hierarchical order, with higher precedence (lower number) evaluated first, and equal-precedence operators associating left-to-right. Parentheses override this. The table below summarizes key operators:
PrecedenceOperatorsDescription
0#Maybe-null access
1-Unary
3*, /, div, mod, rem, division
4+, -,
5&
6==, !=, <, >, <=, >=, isaComparisons, type check
7notLogical NOT
8andLogical AND
9orLogical OR
For example, in 2 + 3 * 4, precedes , yielding 14.

Integration of Markup and Procedures

In Curl, markup is fundamentally integrated with programming procedures, where tags such as {text} and {image} function as callable macros or text procedures that generate elements dynamically during compilation and execution. These constructs allow developers to define lightweight, domain-specific notations that blend declarative markup with imperative code, enabling the creation of structured content like formatted text or embedded media without separating presentation from logic. For instance, {text font-style=italic "Hello, World!"} renders italicized text, while {image graphic-url="path/to/image.curl"} inserts an object, both processed as procedure invocations that can accept parameters and return visual components. The curly braces syntax {} serves as the core mechanism for evaluation, enclosing content that mixes static text with dynamic computations to produce executable markup. Plain text outside braces displays literally, but content within {} is parsed and evaluated as code, allowing seamless of variables, expressions, or procedure calls into markup flows. This fusion supports concise expressions like {bold "This is {value} bold text."}, where {value} computes a dynamic insertion, blending markup rendering with procedural logic for responsive content generation. Curl provides native support for , adhering to the Unicode Standard for character representation, which facilitates and multilingual markup without requiring character escaping in most cases. Characters are handled via Unicode values in ranges such as U+0000 to U+D7FF, U+E000 to U+FFFF, and supplementary planes, enabling seamless inclusion of global scripts in markup like {text "Café with π ≈ 3.14"} for diverse linguistic content. encoding is implicitly supported in source files and text processing, allowing developers to author and deploy internationalized applications directly. Modularity in markup is achieved through the {require} directive, which includes external Curl files or resources at compile time, promoting reuse of markup snippets across modules. For example, {require "common-markup.curl"} loads reusable UI definitions, such as shared table or form templates, into the current scope without runtime overhead. This enables scalable designs, like dynamically generating a table with embedded computations: {table border-width=1 {row {cell "Price:"} {cell {* ball-price 2} dollars}} {row {cell "Quantity:"} {cell 2}}}, where arithmetic procedures compute cell values on evaluation.

Implementation and Tools

Compiler and Runtime Environment

The Curl compiler utilizes a just-in-time (JIT) pipeline to convert into native on the client, enabling efficient execution of both markup and procedural elements. The process starts with lexing and parsing, where the lexer tokenizes input using a prefix syntax—enclosed in curly braces, such as {add 1 2}—inspired by , while supporting for common operators like + and >. Parsing builds an (AST) that integrates declarative markup with imperative code, facilitating the unified architecture of the language. Optimization occurs prior to JIT compilation, incorporating lazy expansion of parameterized classes to minimize and incremental evaluation to accelerate startup for interactive applications. The runtime engine (RTE), a core component, drives the JIT stage by generating platform-specific native code from the optimized AST or pre-parsed "pcurl" binaries, ensuring high runtime performance without requiring server-side processing. This dynamic compilation reduces download sizes and supports seamless updates via versioned packages fetched over the network. The Runtime Environment (RTE), available up to version 8.0.15 released in October 2025, oversees loading, execution, and rendering as a browser plug-in. It includes an automatic garbage collector for , promoting and preventing resource leaks in unprivileged contexts. The RTE integrates hardware-accelerated 2D/3D libraries, a declarative GUI system for layouts and controls, and network support for protocols like HTTP, , and to handle dynamic content. Multiple applets run in isolated memory spaces, with package caching for repeated access. Curl's security model sandboxes web applets to restrict interactions with the operating system, other programs, or unauthorized resources, limiting CPU, memory, and persistent storage usage. Permission controls require explicit user approval—often via the Curl Control Panel—for file or network access, with SSL verification for trusted sites; enterprise administrators can impose additional policies. This design enhances safety for client-side execution while allowing controlled privilege escalation. Performance is further optimized through incremental compilation, which recompiles only modified sections during development, and caching of compiled packages to minimize latency in iterative workflows. These features, combined with compact code formats, can yield an order-of-magnitude improvement in responsiveness for rich web applications compared to traditional interpreted environments. is ensured via explicit version declarations in code, such as {curl 3.0 applet}, which the RTE uses to select appropriate libraries and behaviors, supporting legacy applications across major releases without modification and mitigating issues like "bit rot" from evolving standards.

Development Environment and Deployment

The Curl Development Environment (CDE) serves as the primary integrated development environment (IDE) for building Curl applications, built as a plugin for the Eclipse platform under the Eclipse Public License version 1.0. It encompasses a language-sensitive editor for writing Curl source code, a debugger for troubleshooting, and an applet builder for packaging applications, with the latest version in the 8.0 series (up to 8.0.15001 as of October 2025). The CDE integrates legacy tools from earlier Curl IDEs, including the Visual Layout Editor (VLE) for designing user interfaces, VLE Extension Editor for customizing layouts, Profiler for performance analysis, Code Coverage Tool for testing completeness, and Class Layout Browser for inspecting object structures. The build process in CDE involves compiling Curl source code into deployable formats suitable for web or offline use. Developers organize projects using .cprj files, which reference modules containing code and GUI elements; compilation generates .curl files for individual components and a .mcurl manifest file to bundle applets for execution. For standalone applications, the Curl Runtime Environment (RTE) employs a just-in-time (JIT) compiler to translate Curl code into native machine code during runtime, enabling high-performance execution without ongoing interpretation. Deployment options for Curl applications leverage the RTE, a free runtime engine that must be installed on client machines to render and execute content. For web-based deployment, applications can be embedded in browsers through the RTE plugin, which supports interactive features like and GUI elements primarily on Microsoft Windows platforms. Alternatively, for offline or native use, applications can be packaged as standalone executables via the RTE's native code generation, allowing distribution without browser dependencies. Debugging within CDE is facilitated by Eclipse-integrated tools, including support for setting breakpoints in the Breakpoints Pane to pause execution at specific lines. Variable inspection occurs through the Pane, which displays current values during debug sessions, while the Call Stack Pane provides stack traces for navigation. Additional controls include toolbar buttons for stepping through code (Step In, Step Over, Step Out) and handling runtime errors by switching to a Debug Layout view. The integrated Profiler aids in identifying performance bottlenecks by analyzing execution times and resource usage. Curl operates under a commercial licensing model managed by , offering a free noncommercial edition for personal and developer use, which includes the CDE Trial Edition (60 days for full features) and restricts deployment to public without or . Enterprise editions, such as the Curl Pro/Deployment License, require payment and support business deployments with advanced security features like signed applets and source , available in user-based (e.g., EPS-SS-UUUU for PCs and servers) or SaaS configurations; development/testing licenses limit usage to 20 client PCs and one . provides enterprise support, including customized options for education, research, and nonprofits.

Adoption and Current Status

Usage in Applications

Curl has found its primary applications in the development of Rich Internet Applications (RIAs), particularly within domains such as , e-learning platforms, and enterprise dashboards, where its ability to blend markup, scripting, and enables interactive, data-intensive web experiences. In , for instance, it supports the creation of secure, high-performance interfaces for handling complex transactions and visualizations. Similarly, its cross-platform capabilities make it suitable for e-learning environments requiring dynamic content delivery and user interactions, as well as enterprise dashboards that aggregate and display large datasets in real-time. Adoption has been particularly strong among Japanese firms, with over 300 customers worldwide as of the mid-2000s, including major entities like and the Bank of Tokyo-Mitsubishi UFJ, Ltd. At the Bank of Tokyo-Mitsubishi UFJ, Curl was deployed for enterprise-class web applications involving intricate user interfaces and secure data processing. Within the Sumitomo Corporation group, to which belongs, Curl powers internal tools for business operations, leveraging its RIA framework for efficient . Typical use cases include interactive charts for financial reporting and dynamic forms for user input in enterprise settings, demonstrated in large-scale deployments across and the . Recent public data on customer numbers is limited, but Curl continues to serve enterprise needs primarily in . The language's unified markup and procedural integration offers key advantages in web applications, significantly reducing code size compared to multi-language stacks while maintaining high performance for data visualization tasks, such as rendering large datasets without latency issues. This efficiency stems from its single-language approach, which streamlines development for RIAs requiring both presentation and logic. Despite these strengths, Curl's adoption remains niche outside , primarily due to its dependency on the Curl Runtime Environment (RTE), a client-side plugin required for execution, which poses deployment challenges in plugin-averse browser ecosystems. Curl facilitates integration with other technologies through support for APIs connecting to databases and native handling of XML and for data interchange in applications, enabling seamless SOA and mashup architectures.

Recent Developments and Community

The Curl programming language continues to receive updates under the stewardship of , with the most recent release being version 8.0.15 of the Curl Runtime Engine (RTE) and 8.0.15001 of the Curl Development Environment (CDE) on October 16, 2025. This update introduces the for embedding WebView2 to display web content, enhancing compatibility with modern browser technologies, alongside improvements to the HttpCookie for RFC 6265 compliance, including support for HttpOnly and SameSite attributes. Bug fixes in this release address issues such as infinite loops in decoding, display problems in multi-monitor setups, and language rendering for . The prior major release, version 8.0.14 of the RTE and 8.0.14001 of the CDE, arrived on January 8, 2024, primarily upgrading underlying libraries for stability. Platform support has shifted toward Windows, with official compatibility for (64-bit) in the RTE, alongside continued emphasis on variants and browser-based applets via plugins. Support for macOS was discontinued starting with version 8.0.10 in March 2019, reflecting a strategic focus on Windows-centric development and web deployment. An official forum exists at communities.curl.com for developer discussions, though activity appears limited since 2018. , including developer guides and API references, is available on the website and integrated into the CDE. Looking ahead, has opened select libraries to the open-source community, including UX components, MVC frameworks, and integration kits, signaling potential for broader contributions and discussions on further open-sourcing. Recent enhancements, such as WebView2 embedding, point to improved integration with contemporary web standards like for richer hybrid applications. Maintenance remains active, with issuing updates as needed for compatibility and fixes, though not strictly on a quarterly schedule.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.