Mongoose 6.7

@alashkin alashkin released this Jan 17, 2017 · 1 commit to master since this release

New platforms supported

A bunch of new platforms are now supported by Mongoose:

  • Windows CE 6.0: See example;
  • TI Tiva TM4C129: See example;
  • PIC32 Harmony TCP/IP: In addition to "bare metal", Mongoose is now able to use PIC32 Harmony TCP/IP Stack. Checkout example here;
  • nRF 51/52: Find example for nRF 51 here and for nRF52 here;
  • mbed: Mongoose is now can be a part of a project based on mbed. Checkout example here;
  • ESP32: Mongoose 6.7 can be compiled for ESP32 platform.

Other new features

  • NXP Kinetis K64 support improved: New example is here;
  • mbedTLS native support: In addition to OpenSSL, Mongoose 6.7 can use mbedTLS;
  • SNTP client added: Mongoose 6.7 for working with Internet time servers.

A lot of improvements and bugfixes

See a list of closed issues here.

Downloads

Mongoose 6.6

@alashkin alashkin released this Oct 12, 2016 · 182 commits to master since this release

Changes

STM32 support added

Mongoose 6.6 can be built and run on STM32 microcontrollers. Check out the new example here for an MQTT Client for STM32. The example runs through how to build an MQTT client for STM32 with TI CC3100 WIFI as network module.

PIC32 support added

We’ve also added PIC32 support to Mongoose. And just as for STM32, we have a new example here for you to follow here. It runs through how an MQTT Client is intended for running on PIC32 (MX series with TI CC3100 as a network module).

TI CC3200 support improved

We have improved the already support TI CC3200. Here, the TI Compiler on docker image was updated to version 5.8.2.

New API introductions

We want to make Mongoose as simple as possible to use. Check out the new API we’ve added in 6.6:

  • mg_http_send_redirect - sends a redirect response
  • mg_http_serve_file - serves a specific file with a given MIME type and optional extra headers.
  • MG_F_ENABLE_BROADCAST - new flag, allows to send broadcast messages
  • MG_EV_SSI_CALL_CTX - new event, the variant of MG_EV_SSI_CALL with context of the SSI call being processed in addition to the tag argument.

New Examples

We mentioned the STM32 an PIC32 examples already, but they are not all! Check out these additional examples to help you get started with your embedded project:

Bugfixes

We always improve bugs along the way between releases. If you come across anything, let us know in our forum.

  • Use gethostbyname to resolve hocalhost if resolving via /etc/hosts failed. (especially useful for Windows users)
  • Fixed a lot of errors and warning in MSVC compilation
  • Fixed bug in multithreaded mode support:
    • Copy flags for accepted connection
    • Use user timeout in multithreading polling
  • Smaller bug fixes

Documentation

We want you to be able to find all the answers you need in our documentation. That’s why we try to improve it as best we can. So you’ll see that we have more clear and structured documentation available as well as explanations for each example added directly in our documentation section.

Binaries

Windows and Mac binaries are available for download from the website.

Licensing

Mongoose is available under GPLv2. Commercial use requires a license, please contact us for terms.

Support

Community support can be found on our forum. Commercial support options are available separately by contacting us.

Downloads

Mongoose 6.5

@rojer rojer released this Jul 12, 2016 · 378 commits to master since this release

Changes

  • Improved TI CC3200 support
    • Newly-rewritten SimpleLink socket handler
    • Added support for SSL
    • NWP restart hook: sl_restart_cb should be invoked by the user to re-init listeners after NWP restart
  • Dedicated JSON Library
    • Support for JSON serialisation/deserialisation has been moved back to a dedicated library (Frozen). It has seen major improvements - printf/scanf like API has been implemented, making parsing and emitting JSON easy and convenient. Users that need JSON functionality are encouraged to check out Frozen.
    • JSON-RPC support is no longer available as part of Mongoose
  • CGI: REMOTE_ADDR and SERVER_PORT variables are now passed to the scripts
  • Fixed a memory leak in mg_connect_ws_opt
  • Fixed issues with HTTP keep-alive connections
  • Other minor fixes

Binaries

Windows and Mac binaries are available for download from the website.

Licensing

Mongoose is available under GPLv2. Commercial use requires a license, please contact us for terms.

Support

Community support can be found on our forum. Commercial support options are available separately by contacting us.

Downloads

Mongoose 6.4

@rojer rojer released this Apr 12, 2016 · 473 commits to master since this release

New features and API changes

Bug fixes and improvements

  • A number of fixes in handling of UDP, added an example.
  • Fix MQTT parsing of nullary commands.
  • Adjust poll timeout if there are pending timers.

Licensing

Mongoose is available under GPLv2. Commercial use requires a license, please contact us for terms.

Support

Community support can be found on our forum. Commercial support options are available separately by contacting us.

Downloads

Mongoose 6.3

@cpq cpq released this Mar 8, 2016 · 564 commits to master since this release

This release concerns commercial users only. From this release on, there are no separation for lite/standard/premium version.

Technical changes (bugfixes, new features) are scheduled for the next 6.4 release in mid-April.

Downloads

6.2

@rojer rojer released this Jan 11, 2016 · 611 commits to master since this release

What's new in the Mongoose Library

  • WebDAV support improvements. With a just a couple of lines of code your web server is ready to serve WebDAV and can be mounted as a network drive in very different clients, like Finder on MacOS, Explorer on Windows and Nemo, Nautilus (and others) on Linux. Just add dav_document_root to initialization parameters and your are ready to go. See simplest_web_server example.
  • Timer support. Mongoose 6.2 introduces new event - MG_EV_TIMER. With event and new API function mg_set_timer things like connection timeout (and a lot of another timeout-related features) can be easily implemented. Call mg_set_timer(my_connection, time(NULL) + N) and my_connection will receive MG_EV_TIMER once N seconds is elapsed. Sub-second precision is also supported, and the mg_time function which returns current time as a fraction floating point value has been added.
    See API documentation for more details.

Other changes:

  • MG_EV_CLOSE is now always delivered before connection is destroyed. This should simplify cleanup.
  • New API function: mg_url_decode to decode URL-encoded string.
  • g++ and Microsoft Visual Studio support was improved

Downloads

Mongoose 6.1

@cpq cpq released this Nov 30, 2015 · 655 commits to master since this release

What's new in the Mongoose Library

  • Native support for PicoTCP embedded TCP/IP stack
  • Native support for LWIP embedded TCP/IP stack
  • Native support for ESP8266 SDK (see example)
  • Native support for CC3200 FreeRTOS SDK
  • Added ability to specify extra headers for mg_serve_http() - that implements e.g. CORS on server side
  • Added ability for automatic port-based redirects, for HTTP->HTTPS redirects
  • Multiple bigfixes

Mongoose editions

For commercial use, Mongoose is available in three editions:

  • Mongoose Lite: Cross platform integration, SSL/TLS, HTTP support
  • Mongoose: Mongoose Lite + HTTP CGI, HTTP SSI, HTTP Digest Auth, WebSocket support
  • Mongoose Premium: Mongoose + Plain TCP, UDP, JSON-RPC, MQTT, DNS, CoAP support

Downloads

Mongoose 6.0

@cpq cpq released this Sep 21, 2015 · 728 commits to master since this release

Overview

This is a major release of Mongoose. It brings new capabilities, making Mongoose a multi-protocol network library rather then only HTTP/Websocket. That means more flexible and rich API. New Mongoose API is not backward-compatible with pre-6.0 versions.

What's New

  • Support for plain TCP, plain UDP
  • Support for Websocket client
  • JSON-RPC client, JSON-RPC server
  • MQTT client, MQTT broker
  • CoAP client, CoAP server
  • DNS client, DNS server, async DNS resolver
  • SSL layer improvements, including modern cryptography support
  • New API

Architecture notes

Pre-6.0 Mongoose was hiding the implementation from the user. Like, internal connection structures, sockets, etc. Mongoose 6.0 opens everything to the user. This has it's pro and cons. The decision to open the guts of the library is to provide power users to take full control over the IO engine. Basic use cases are well covered by the example that are provided in abundance.

Mongoose Editions

Mongoose is available in three editions to suit your integration needs:

  • Mongoose Lite: Cross platform integration, SSL/TLS, HTTP support
  • Mongoose: Mongoose Lite + HTTP CGI, HTTP SSI, HTTP Digest Auth, WebSocket support
  • Mongoose Premium: Mongoose + Plain TCP, UDP, JSON-RPC, MQTT, DNS, CoAP support

Downloads

Mongoose 5.6

@cpq cpq released this Mar 18, 2015 · 811 commits to master since this release

Changes in Libmongoose library:

  • Added -dav_root configuration option that gives an ability to mount
    a different root directory (not document_root)
  • Fixes for build under Win23 and MinGW
  • Bugfix: Double dots removal
  • Bugfix: final chunked response double-send
  • Fixed compilation in 64-bit environments
  • Added OS/2 compatibility
  • Added getaddrinfo() call and NS_ENABLE_GETADDRINFO
  • Various SSL-related fixes
  • Added integer overflow protection in iobuf_append() and deliver_websocket_frame()
  • Fixed NetBSD build
  • Enabled NS_ENABLE_IPV6 build for Visual Studio 2008+
  • Enhanced comma detection in parse_header()
  • Fixed unchanged memory accesses on ARM
  • Added ability to use custom memory allocator through NS_MALLOC, NS_FREE, NS_REALLOC

Changes in Mongoose binary:

  • Added -start_browser option to disable automatic browser launch
  • Added experimental SSL support. To listen on HTTPS port, use ssl://PORT:SSL_CERT format. For example, to listen on HTTP port 8080 and HTTPS port 8043, use -listening_port 8080,ssl://8043:ssl_cert.pem

Downloads