WhaleConnect
WhaleConnect: A General-Purpose, Cross-Platform Network Communication Application - Published in JOSS (2024)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Cross-platform network communication software
Basic Info
Statistics
- Stars: 32
- Watchers: 4
- Forks: 6
- Open Issues: 0
- Releases: 9
Metadata Files
docs/readme.md
WhaleConnect
[!NOTE] This project is considered complete and stable. It has been archived as no further maintenance is planned. (Archived on 2025-06-10)

WhaleConnect is an application for Internet and Bluetooth communication for Windows, Linux, and macOS.

Documentation Links
Design
WhaleConnect is designed to address limitations of existing network communication tools, which have low scalability over the number of connections and limited interoperability with other technologies. The user interface is supported by a custom I/O backend that uses asynchronous APIs native to the application's target operating systems:
- Windows: Input/output completion ports (IOCP)
- macOS: kqueue and IOBluetooth
- Linux: io_uring
This allows for efficient communication over parallel connections to other computers and devices. WhaleConnect also supports various common communication protocols on top of this framework, enabling interoperability with a wide range of network-enabled systems and platforms, and security is offered through Transport Layer Security (TLS) protocol support.
WhaleConnect aims to be a general-purpose communication tool that can be used by researchers, developers, and hobbyists in a wide variety of industries, such as the Internet of Things (IoT).
Features
- Parallel connections
- Create and manage multiple connections at the same time
- Uses operating system features for efficiency and scalability
- Low resource usage: see system requirements
- Wide protocol support
- TCP and UDP over IPv4 and IPv6
- L2CAP and RFCOMM over Bluetooth
- TLS 1.2 and 1.3 for TCP clients
- Clients
- Create outgoing connections to other devices
- DNS lookup for IP connections
- Service Discovery Protocol (SDP) inquiries for Bluetooth connections
- Create Bluetooth connections to devices paired to the computer
- Servers
- Accept incoming connections from other devices
- Options to view data sent from all clients and individual clients
- Selections for clients to send data to or have connections closed
- Data view options
- Timestamps
- UTF-8 encoded hexadecimal
- Logs of sent data
- Multiline textbox to send data
- Select line ending: CR, LF, or both
Minimum Hardware Requirements
- Architecture: amd64 (Windows, Linux), arm64 (macOS)
- Free memory: 256 MB
- Free disk space: 32 MB
- Display resolution: 1280x720
Additional features require:
- Network adapter for Internet-based communication
- Bluetooth adapter for Bluetooth-based communication
About CPUs
- 32-bit processors are not supported.
- Only Apple Silicon (e.g., M1) CPUs are supported with macOS.
- You may get WhaleConnect running on an unsupported CPU by building from source, though we provide no guarantees of compatibility and may not be able to provide full support for any issues.
Software Requirements
- Operating system: Windows 10 or later, macOS Sonoma 14.0 or later, Linux kernel 5.19 or later
- OpenGL: 3.0 or higher
- Windows only: Microsoft Visual C++ 2015-2022 Redistributable
- Recommended: Updated drivers for your graphics card, network adapter, and Bluetooth adapter
About Operating Systems
- The Linux kernel 5.19 is required because of
io_uring_prep_cancel_fdandIORING_ASYNC_CANCEL_ALLusage. The distribution does not matter. - WhaleConnect has not been tested on older versions of Windows and macOS than those above. While they may work, compatibility is not guaranteed.
Installation
To install WhaleConnect, follow these steps:
- Go to the releases page for this repository.
- Under the latest version (displayed first on the page), download the ZIP file for your operating system (the files are displayed under "Assets").
- Extract the downloaded ZIP file.
- Run WhaleConnect as shown below.
- On Windows: Run
bin/WhaleConnect.exe. - On Linux: Run
bin/WhaleConnect. - On macOS: You should have a
.dmgfile after extracting the ZIP. CopyWhaleConnect.appout of the DMG, then runWhaleConnect.app.
All executables are unsigned, so you may see warnings from your operating system if you run them. On macOS, if you see a message that says "WhaleConnect is damaged and can't be opened", run the following command, then reopen the application:
shell
xattr -c path/to/WhaleConnect.app
[!NOTE] You do not need to download any other software or libraries as all dependencies are bundled into the package that you download.
License
WhaleConnect and its build scripts are licensed under the GPL v3+ license.
Citation
If you use WhaleConnect, please cite our paper:
text
@article{WhaleConnect2024,
author = {Sun, Aidan},
doi = {10.21105/joss.06964},
journal = {Journal of Open Source Software},
month = aug,
number = {100},
pages = {6964},
title = {{WhaleConnect: A General-Purpose, Cross-Platform Network Communication Application}},
url = {https://joss.theoj.org/papers/10.21105/joss.06964},
volume = {9},
year = {2024}
}
About the Name
With their complex songs and vocalizations, whales are among the best animal communicators. They can also be found in every ocean.
This project was previously called "Network Socket Terminal" until the 1.0.0 release.
Owner
- Name: WhaleConnect
- Login: WhaleConnect
- Kind: organization
- Repositories: 1
- Profile: https://github.com/WhaleConnect
Cross-platform network communication software
JOSS Publication
WhaleConnect: A General-Purpose, Cross-Platform Network Communication Application
Tags
IoT Network communication Multithreading Cross-platform GUICitation (CITATION.cff)
cff-version: "1.2.0"
authors:
- family-names: Sun
given-names: Aidan
orcid: "https://orcid.org/0009-0000-6282-2497"
doi: 10.5281/zenodo.13328366
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Sun
given-names: Aidan
orcid: "https://orcid.org/0009-0000-6282-2497"
date-published: 2024-08-27
doi: 10.21105/joss.06964
issn: 2475-9066
issue: 100
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 6964
title: "WhaleConnect: A General-Purpose, Cross-Platform Network
Communication Application"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.06964"
volume: 9
title: "WhaleConnect: A General-Purpose, Cross-Platform Network
Communication Application"
GitHub Events
Total
- Watch event: 4
- Push event: 23
- Fork event: 1
Last Year
- Watch event: 4
- Push event: 23
- Fork event: 1
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Aidan Sun | a****5@g****m | 1,232 |
| Daniel S. Katz | d****z@i****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 4
- Total pull requests: 1
- Average time to close issues: 16 days
- Average time to close pull requests: 8 minutes
- Total issue authors: 4
- Total pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 1
- Average time to close issues: 19 days
- Average time to close pull requests: 8 minutes
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- DavidLee528 (1)
- wob86 (1)
- harshadjs (1)
Pull Request Authors
- danielskatz (2)
