Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Double Trouble

An interpreter for a dynamically typed language needs to encode values in such a way that the value type is accessible at runtime alongside the value itself. There are a few tricks to encode the type compactly. Here, we discuss a quite common and ingenious trick, shared with some well known JS virtual machines.

Design_Doc_Double_Trouble.png
Alexander Alashkin
Alexander Alashkin

CoAP client and CoAP server examples  [Mongoose more than an Embedded Web Server]

In this blogpost, I’m going to show how to implement a CoAP client and a CoAP server with Mongoose Embedded Web Server.

To start off, download the Mongoose source code from here.

Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Compacting GC

One of the things that make programming today so much more approachable is the the automatic memory management feature of many high-level programming languages. However, exactly this piece is often missing from embedded platforms, and there is a reason for that:  the well-established techniques used by modern Garbage Collection (GC) systems are designed with radically different trade-offs than what embedded systems with a few KB of RAM dictate.

GC-Design-Doc-1.png
Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Virtual Devices

How often do you want to test something and need hardware? How often do you then not have the right hardware to hand? Well, we hear your pain. This is why the cloud of Mongoose IoT Platform comes with a virtual device. It allows you to test a potential IoT integration without needing a physical device.  

Alexander Alashkin
Alexander Alashkin

How to add your protocol to Mongoose Embedded Web Server

Mongoose Embedded Web Server supports a lot of protocols. We think we’ve added the most popular ones like HTTP, WebSocket, MQTT and more. But, there are many protocols that aren’t supported. And there always will be.

Protocols_Mongoose.png
Alexander Alashkin
Alexander Alashkin

 Mongoose Embedded Web Server - Internal Networking Interface

All problems in computer science can be solved by another level of indirection, except of course for the problem of too many indirections.
David Wheeler

A great quote and a good intro to this blog post! We want to give you an insight into the Internal Networking Interface (INI) of Mongoose Embedded Web Server.

Internet Netowrking Interface
Deomid Ryabkov
Deomid Ryabkov

Cookie authentication and session management [Mongoose more than an Embedded Web Server]

Cookie authentication and session management are important for web applications. Mongoose Embedded Web Server supports basic and digest authentication, which gets the job done, but, it doesn’t let web app control the UI. It’s a simple prompt created by the browser and rarely blends well with the rest of the app.

Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Distributed OurCI

Our engineers share the background to our Continuous Integration (CI) process in this design doc. Internally, the team decided to nickname it OurCI and you’ll see it referred to as such in the design doc below. 

Sergey Lyubka
Sergey Lyubka

Mongoose IoT Platform 1.1 Release

Hot on the heels of our 1.0 release come newly implemented improvements and suggestions from our users. We are proud to announce Mongoose IoT Platform 1.1 with the following new features:

Marko Mikulicic
Marko Mikulicic

IoT Platform Design Doc: Multiple switches, one light

Today, we are sharing the first of our design docs with you. If you remember, our design docs show a history of our engineering process and shed some light on how we develop Mongoose IoT Platform. This one is all about the visual design of the “on/off switch” control.

IoT Platform Design Doc Switches 2
Sergey Lyubka
Sergey Lyubka

IoT Platform Design Docs - How our engineering team works

Mongoose IoT Platform is growing, in fact stay tune for some exciting releases soon. We get asked a lot how we make decisions and the background to how Mongoose IoT Platform is built. So, over the coming months we are going to share a series of our Design Docs to give you an unique insight into how our engineering team works.

Cesanta_Eng_Team.jpg
Deomid Ryabkov
Deomid Ryabkov

Mongoose Embedded Web Server 6.5 Release

Mongoose Embedded Web Server is back with this quarter’s release: 6.5.

As always, we have taken your suggestions and feedback to improve Mongoose on board and hope you like the new functions:

Sergey Lyubka
Sergey Lyubka

Timers Example [Mongoose more than an Embedded Web Server]

In this post, I am going to show you how to use timers with Mongoose. As always, the full source code of this example is available on Github. All you need to do is to clone the repo and type “make” in the example directory. 

Sergey Lyubka
Sergey Lyubka

Top 5 Application Examples [Mongoose more than an Embedded Web Server]

Mongoose is known as one of the best embedded web servers currently available. From starting as a single-click-to-run executable to now being an embedded networking library, its functions range from WebSocket to MQTT and more.

Sergey Lyubka
Sergey Lyubka

Upload files to Amazon S3 [Mongoose more than an Embedded Web Server]

Today, I am going to show you how to use Mongoose to file upload to Amazon S3 service. In essence, this is an example on how to make a RESTful service that uses another RESTful service. As always, the full source code of this example is available on Github. All you need to do is to clone the repo and type “make” in the example directory. 

Sergey Lyubka
Sergey Lyubka

RESTful client example [Mongoose more than an Embedded Web Server]

In this blogpost, I am going to show you how easy it is to implement a RESTful client with Mongoose. As always, the full source code of this example is available on Github. All you need to do is to clone the repo and type “make” in the example directory. 

Sergey Lyubka
Sergey Lyubka

Pub Sub Example [Mongoose more than an Embedded Web Server]

In this blogpost, I am going to show you how easy it is to implement a Publish/Subscribe pattern with Mongoose using plain TCP protocol. As always, the full source code of this example is available on Github. All you need to do is to clone the repo and type “make” in the example directory. 

Sergey Lyubka
Sergey Lyubka

Netcat Example [Mongoose more than an Embedded Web Server]

Netcat is a well known networking tool that can do tons of things. Arguably, the most common use case is reading data from a remote TCP or UDP endpoint and write it to the stdio, or vice versa. For example, this is how a simple HTTP request could be made with netcat:

Deomid Ryabkov
Deomid Ryabkov

Mongoose and multi-threading [Mongoose more than an Embedded Web Server]

Many users ask us how Mongoose Embedded Web Server can be used in a multi-threaded environment. It is not trivial, and today we’ll show you how to do it correctly.

Alexander Alashkin
Alexander Alashkin

Big Upload Example [Mongoose more than an Embedded Web Server]

Do you want to upload files of any size simply and joyously? You definitely need Mongoose.

Here’s how you do it, step by step: