Historical Roadmap42, Revision 1

Roadmap to Euphoria 4.2

New libraries


CURL library
std/net/curl.e

  • Provide a complete wrapper for libcurl and include prebuilt binaries in the bin/ directory on all platforms.

GUI library
std/ui.e

  • Provide a complete wrapper for libui and include prebuilt binaries in the bin/ directory on all platforms.
  • This provides out-of-the box support for simple GUI applications. Larger GUI applications should still use Win32Lib, EuGTK, or wxEuphoria.

JSON library
std/json.e

  • Compile jsmn directly into the backend for fast JSON parsing and provide additional native routines in the std library.
  • JSMN only provides a single parsing function. We'll need to provide additional routines to read/write JSON files natively.

XML library
std/xml.e

  • Compile mxml directly into the backend and expose all routines as wrappers in the std library.

ZLIB library
std/zlib.e

  • Compile zlib directly into the backend and expose all routines as wrappers in the std library.

New features


C structures
built-in

  • Merge Matt's long-standing memstruct branch to provide these new features.
  • Need to update any additional std libraries that currently wrap structures manually.

HTTPS support
std/net/http.e

  • Use WinInet on Windows, or CURL on all others.
  • Users can define HTTP_FORCE_CURL before include std/net/http.e to force the use of CURL on Windows.
  • Also provide other HTTP methods such as http_put(), etc.

FTP support
std/net/ftp.e

  • Use WinInet on Windows, or CURL on all others.
  • Users can define FTP_FORCE_CURL to force ftp_get() and ftp_put() use CURL on Windows.
  • WinInet does not support encrypted FTP - users will have to use CURL for this directly.

FAQ


Q: Why compile some things into the backend and not others? Why not use CURL for all HTTP/FTP functions?

A: We need to maintain some balance and avoid including "everything but the kitchen sink" into the backend -- leading to a bloated and unportable executables. We should also avoid making everything an external library, which creates more strain on users to package and ship their own applications. Small libraries and high-priority libraries should be built into the backend. Large and low-priority libraries should be shipped separately.

Not Categorized, Please Help

Search



Quick Links

User menu

Not signed in.

Misc Menu