Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mongoose
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esp
mongoose
Commits
2c83a50a
Commit
2c83a50a
authored
Jul 21, 2016
by
Marko Mikulicic
Committed by
Cesanta Bot
Jul 21, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Document %.*Q
PUBLISHED_FROM=5dc567f8978d5414835f7a2338a78ae9eb683f55
parent
1c80fc28
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
19 deletions
+19
-19
intro.md
docs/design-concept/intro.md
+8
-8
memory-buffers.md
docs/design-concept/memory-buffers.md
+6
-6
overview.md
docs/overview.md
+4
-4
intro.md
docs/usage-example/intro.md
+1
-1
No files found.
docs/design-concept/intro.md
View file @
2c83a50a
...
@@ -8,7 +8,7 @@ items:
...
@@ -8,7 +8,7 @@ items:
---
---
Mongoose is a multi-protocol networking library that implements non-blocking,
Mongoose is a multi-protocol networking library that implements non-blocking,
asyncronous IO and provides event-based API. It has three basic data
asyncronous IO and provides event-based API
s
. It has three basic data
structures:
structures:
-
`struct mg_mgr`
is an event manager that holds all active connections
-
`struct mg_mgr`
is an event manager that holds all active connections
...
@@ -16,14 +16,14 @@ structures:
...
@@ -16,14 +16,14 @@ structures:
-
`struct mbuf`
describes data buffer (received or sent data)
-
`struct mbuf`
describes data buffer (received or sent data)
Connections could be either
*listening*
,
*outbound*
or
*inbound*
. Outbound
Connections could be either
*listening*
,
*outbound*
or
*inbound*
. Outbound
connections are created by
`mg_connect()`
call.
Listening connections are
connections are created by
the
`mg_connect()`
call.
Listening connections are
created by
`mg_bind()`
call.
Inbound connections are those accepted by a
created by
the
`mg_bind()`
call.
Inbound connections are those accepted by a
listening connection.
Each connection is described by
`struct mg_connection`
listening connection.
Each connection is described by the
`struct mg_connection`
structure, which has a number of fields like socket, event handler function,
structure, which has a number of fields like socket, event handler function,
send/receive buffer, flags, et
cetera
.
send/receive buffer, flags, et
c
.
Mongoose
usage pattern is to declare and initializ
e event manager, create
Mongoose
's usage pattern is to declare and initialis
e event manager, create
connections and create an event loop by calling
`mg_mgr_poll()`
in a loop.
connections and create an event loop by calling
`mg_mgr_poll()`
in a loop.
`mg_mgr_poll()`
iterates over all sockets, accepts new connections, sends and
`mg_mgr_poll()`
iterates over all sockets, accepts new connections, sends and
receives data, closes connections
,
and calls event handler functions for the
receives data, closes connections and calls event handler functions for the
respective events.
respective events.
docs/design-concept/memory-buffers.md
View file @
2c83a50a
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
title
:
Memory buffers
title
:
Memory buffers
---
---
Each connection has send and receive buffer,
`struct mg_connection::send_mbuf`
Each connection has
a
send and receive buffer,
`struct mg_connection::send_mbuf`
and
`struct mg_connection::recv_mbuf`
respectively. When data arrives,
and
`struct mg_connection::recv_mbuf`
respectively. When data arrives,
Mongoose appends received data to the
`recv_mbuf`
and triggers
`MG_EV_RECV`
Mongoose appends received data to the
`recv_mbuf`
and triggers
an
`MG_EV_RECV`
event.
U
ser may send data back by calling one of the output functions, like
event.
The u
ser may send data back by calling one of the output functions, like
`mg_send()`
or
`mg_printf()`
. Output functions append data to the
`send_mbuf`
.
`mg_send()`
or
`mg_printf()`
. Output functions append data to the
`send_mbuf`
.
When Mongoose successfully writes data to the socket, it discards data from
When Mongoose successfully writes data to the socket, it discards data from
`struct mg_connection::send_mbuf`
and sends
`MG_EV_SEND`
event. When
connection
`struct mg_connection::send_mbuf`
and sends
an
`MG_EV_SEND`
event. When the
connection
is closed,
`MG_EV_CLOSE`
event is sent.
is closed,
an
`MG_EV_CLOSE`
event is sent.
![](
media/mbuf.png
)
![](
media/mbuf.png
)
docs/overview.md
View file @
2c83a50a
...
@@ -3,16 +3,16 @@ title: Overview
...
@@ -3,16 +3,16 @@ title: Overview
---
---
Mongoose is a swiss army knife for embedded network programming.
Mongoose is a swiss army knife for embedded network programming.
It implements event-driven non-blocking API for TCP, UDP, HTTP,
It implements event-driven non-blocking API
s
for TCP, UDP, HTTP,
WebSocket, CoAP, MQTT for
both
client and server mode.
WebSocket, CoAP, MQTT for client and server mode.
Features include:
Features include:
-
Cross-platform: works on Linux/UNIX, MacOS, QNX, eCos, Windows, Android,
-
Cross-platform: works on Linux/UNIX, MacOS, QNX, eCos, Windows, Android,
iPhone, FreeRTOS (TI CC3200, ESP8266)
, etc
iPhone, FreeRTOS (TI CC3200, ESP8266)
and more
-
Single-threaded, asynchronous, non-blocking core with simple event-based API
-
Single-threaded, asynchronous, non-blocking core with simple event-based API
-
Native support for
[
PicoTCP embedded TCP/IP stack
](
http://www.picotcp.com
)
,
-
Native support for
[
PicoTCP embedded TCP/IP stack
](
http://www.picotcp.com
)
,
[
LWIP embedded TCP/IP stack
](
https://en.wikipedia.org/wiki/LwIP
)
[
LWIP embedded TCP/IP stack
](
https://en.wikipedia.org/wiki/LwIP
)
-
Builtin protocols:
-
Built
-
in protocols:
-
plain TCP, plain UDP, SSL/TLS (over TCP, one-way or two-way)
-
plain TCP, plain UDP, SSL/TLS (over TCP, one-way or two-way)
-
HTTP client and server
-
HTTP client and server
-
WebSocket client and server
-
WebSocket client and server
...
...
docs/usage-example/intro.md
View file @
2c83a50a
...
@@ -3,7 +3,7 @@ title: Usage Example
...
@@ -3,7 +3,7 @@ title: Usage Example
---
---
-
Copy
`mongoose.c`
and
`mongoose.h`
to your build tree
-
Copy
`mongoose.c`
and
`mongoose.h`
to your build tree
-
Write code that uses Mongoose API, e.g. in
`my_app.c`
-
Write code that uses
the
Mongoose API, e.g. in
`my_app.c`
-
Compile application:
`$ cc my_app.c mongoose.c`
-
Compile application:
`$ cc my_app.c mongoose.c`
```
c
```
c
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment