Monad Torrent

Lucic, Davor and Smajilbasic, Fadil (2024) Monad Torrent. Other thesis, OST Ostschweizer Fachhochschule.

[thumbnail of HS 2024 2025-SA-EP-Smajilbasic-Lucic-PL FP Haskell Open Slot 2.pdf] Text
HS 2024 2025-SA-EP-Smajilbasic-Lucic-PL FP Haskell Open Slot 2.pdf - Supplemental Material

Download (407kB)

Abstract

Introduction:

The BitTorrent protocol revolutionized peer-to-peer file sharing by enabling efficient and decentralized data distribution. This project, developed by Fadil Smajilbasic and Davor Lucic, explores the implementation of a simple BitTorrent client using the Haskell programming language. By using Haskell's robust functional programming paradigms, this project aims to provide educational approach to understanding how BitTorrent clients can be used to download files. Alongside the implementation, the project includes a simple, step-by-step guide to empower others to build their own BitTorrent clients, demystifying the technical complexities of this widely used protocol.

This project aims to shed some light on Haskell's versatility and another practical use of the language outside of academics.

Objective:

The primary objectives of this project encompass a combination of technical development, organizational discipline, and educational outreach. Effective project management and time tracking are central to ensuring that the development process remains structured. A key focus is on delivering a functional and usable BitTorrent client, showcasing a practical application of the Haskell programming language in network programming. Additionally, the project aims to produce a comprehensive and accessible guide that simplifies the process of building a BitTorrent client, enabling others to replicate and expand upon the work. These objectives collectively ensure a well-rounded project that balances technical achievement with educational value and professional practice.

Approach:

For the development of we decided to take inspiration on a pre-existing guide developed by a team at codecrafters.io and the Brick library for the terminal UI. This guide helped us to comprehend the challenge and more easily use Haskell to solve the objective of this project. Further details about the technologies used can be found in our documentation.

Item Type: Thesis (Other)
Subjects: Topics > Software > Agile Software Development > SCRUM
Technologies > Programming Languages > Haskell
Metatags > IFS (Institute for Software)
Divisions: Bachelor of Science FHO in Informatik > Student Research Project
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Mehta, Farhad
UNSPECIFIED
Date Deposited: 18 Feb 2025 12:29
Last Modified: 18 Feb 2025 12:29
URI: https://eprints.ost.ch/id/eprint/1273

Actions (login required)

View Item
View Item