https://github.com/akitaengineering/akita-wais
Akita WAIS is a decentralized Wide Area Information Server (WAIS) implementation designed for the Reticulum network. It allows users to discover, browse, and retrieve files from servers across the Reticulum mesh.
https://github.com/akitaengineering/akita-wais
akita akita-engineering decentralized mesh mesh-networks reticulum wais
Last synced: 3 months ago
JSON representation
Akita WAIS is a decentralized Wide Area Information Server (WAIS) implementation designed for the Reticulum network. It allows users to discover, browse, and retrieve files from servers across the Reticulum mesh.
- Host: GitHub
- URL: https://github.com/akitaengineering/akita-wais
- Owner: AkitaEngineering
- License: gpl-3.0
- Created: 2025-03-15T22:22:04.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-15T22:29:56.000Z (3 months ago)
- Last Synced: 2025-03-15T23:24:14.986Z (3 months ago)
- Topics: akita, akita-engineering, decentralized, mesh, mesh-networks, reticulum, wais
- Language: Python
- Homepage: https://akitaengineering.com
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Akita WAIS for Reticulum
Akita WAIS is a decentralized Wide Area Information Server (WAIS) implementation designed for the Reticulum network. It allows users to discover, browse, and retrieve files from servers across the Reticulum mesh.
## Features
* **Decentralized Server Discovery:** Servers automatically announce their presence, and clients discover them through Reticulum's group messaging.
* **Server List Sharing:** Servers share their discovered server lists, enabling clients to find other servers through a connected server.
* **Text and Binary File Support:** Handles both text and binary files, with robust encoding handling.
* **Search Functionality:** Clients can search for files on servers using keywords.
* **Simple Command-Line Interface:** Easy-to-use client interface for browsing and retrieving files.
* **Timeout Handling:** Prevents client hangs by implementing request timeouts.
* **Reticulum Integration:** Leverages Reticulum's reliable and efficient networking capabilities.## Requirements
* Reticulum installed and configured.
* Python 3.## Installation
1. **Clone or Download:** Download the `akita_wais.py` script.
2. **Reticulum:** Ensure Reticulum is running on your system.## Usage
### Running a Server
1. **Create `wais_data` Directory:** Create a directory named `wais_data` in the same location as `akita_wais.py`.
2. **Place Files:** Put the files you want to share in the `wais_data` directory.
3. **Start Server:** Run the following command:```bash
python akita_wais.py server
```### Running a Client
1. **Start Client:** Run the following command:
```bash
python akita_wais.py
```2. **Follow the Menu:** The client will display a menu with options to discover servers, list files, retrieve files, search, and more.
## Client Menu Options
* **List files:** Lists the files available on the selected server.
* **Get file:** Retrieves a specific file from the server.
* **Search files:** Searches for files on the server using keywords.
* **Get server list:** Displays the servers known by the currently connected server.
* **Select another Server:** Allows you to choose a different server from the discovered list.
* **Exit:** Closes the client.## Notes
* Ensure that Reticulum is properly configured and running on all devices.
* The `wais_data` directory on each server contains the files that will be shared.
* When binary files are sent, they are sent as latin-1 encoded strings.
* The client uses a 10 second timeout for requests to the servers.## Contributing
Contributions are welcome! Feel free to submit pull requests or open issues for bug reports or feature requests.