Skip to content

jeremyhahn/cwebsocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f890619 · Jul 2, 2024

History

87 Commits
Apr 19, 2014
Jul 2, 2024
Jul 2, 2024
Apr 19, 2014
Jan 24, 2014
Feb 7, 2014
Apr 22, 2016
Jul 2, 2024
Mar 4, 2014
Apr 16, 2014
Jan 24, 2014

Repository files navigation

alt text cwebsocket

High performance websocket client/server

The goal of cwebsocket is to provide a portable, high performance websocket client/server, especially on low power embedded systems.

cwebsocket is currently in a development state. You may encounter bugs. Report them for a timely fix.

Successful tests have been conducted on the following architectures:

  1. x86
  2. x86_64
  3. ARM

cwebsocket is compliant with the following standards:

  1. ANSI C
  2. POSIX
  3. RFC 6455

Dependencies

  1. autoconf
  2. automake
  3. libtool
  4. libssl-dev
  5. libev-dev

Build

By defaults, cwebsocket is built with multi-threading and SSL support.

To build, run:

./autogen.sh
./configure
make
sudo make install

To built without multi-threading:

./configure --enable-threads=no

To build without SSL:

./configure --enable-ssl=no

Client

The websocket client is able to connect and exchange data with any RFC 6455 compliant server.

./websocket-client ws://echo.websocket.org
./websocket-client wss://echo.websocket.org

TODO

  1. More testing on various embedded devices
  2. Implement pluggable sub-protocols (socketio, WAMP, custom)
  3. Implement pluggable extensions on the client per RFC (section 9)
  4. Get a basic websocket server developed

Support

Please consider supporting this project for ongoing success and sustainability. I'm a passionate open source contributor making a professional living creating free, secure, scalable, robust, enterprise grade, distributed systems and cloud native solutions.

I'm also available for international consulting opportunities. Please let me know how I can assist you or your organization in achieving your desired security posture and technology goals.

https://github.com/sponsors/jeremyhahn

https://www.linkedin.com/in/jeremyhahn

Releases

No releases published

Packages

No packages published