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
|
- diff to current revision, view current revision history, backlinks
- Last modified Aug 30, 2019 by ghaberek