Introduction to Fire★
Fire★, a unique grass computing platform, is transforming the way peer-to-peer (P2P) software is created and shared. Unlike traditional cloud-based software, Fire★ offers a tangible and customizable experience. The platform is designed for people to engage with technology directly, enabling them to mold it to their needs.
Key Features
Real-Time Collaboration
One of the standout features of Fire★ is its built-in application editor. This tool allows users to program in real-time alongside others, fostering a collaborative environment. The applications are crafted using the Lua programming language, equipped with a specialized API tailored for P2P application development.
Effortless Sharing
Sharing an application through Fire★ couldn't be easier. Users can integrate an application into their conversations effortlessly. With just a single click, the application can be installed on one's system and used in subsequent interactions. Moreover, users can open these apps within the editor to tweak and share them, encouraging an open exchange of ideas and improvements.
Simplified P2P Connections
Fire★ takes care of the intricate aspects of setting up a P2P connection, such as NAT traversal and UDP hole punching. This allows developers to focus on crafting applications that function seamlessly without requiring a central server. All communications between peers are encrypted, ensuring a secure environment that is server-free.
Development and Security
Despite its promising features, Fire★ is still under development. It's important to note that its security has not been fully audited, and users are advised to use the platform at their own risk. The project's encryption methods utilize RSA with 4k keys for handshakes, and AES in conjunction with Diffie-Hellman to create an ephemeral key for connection sessions. Security experts are invited to contribute to and enhance the platform.
Technical Overview
Fire★ is developed using C++11 and requires a modern compiler, compatible with the latest versions of gcc, clang, and visual studio. The main application resides in the src/firestr
directory, and the project employs CMake for building.
Build Dependencies
The development of Fire★ relies on several dependencies:
- GCC 6.3+
- CMake
- Qt 5
- Boost 1.54+
- Botan 1.10+
- libopus
- libsnappy
- uuid
- libssl
- libgmp
Building with Vagrant
Users can build Fire★ using Vagrant by following a series of straightforward steps:
- Install Vagrant and run
$ vagrant up
and$ vagrant ssh
in the terminal. - Start XFCE with
$ startxfce4&
(password: 'vagrant' if prompted). - Inside the VM, navigate to the
/vagrant
directory, create abuild
directory, and execute the build commands:$ cmake ..
and$ make -j2
. - Test instances can be executed from the
src/firestr/
directory with the command:./firestr --home test1 &
and./firestr --home test2 &
.
Licensing
Fire★ is distributed under the GNU General Public License v3. This allows users to redistribute and modify the software under the same license terms. While the software is made available with the hope of being useful, it is provided without any warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
For those interested in an open-source project that pioneers the future of decentralized software development and sharing, Fire★ offers a robust platform to explore and contribute to.