Google Summer of Code 2011 Proposal Draft

Abstract

The D programming language standard library (Phobos) lacks modules for high-level networking using application layer protocols. This project aims to provide design
and implementation of networking modules for the D programming language.

Project details

Networking abilities are essential for modern programming languages.
Currently Phobos contains modules for low-level networking (std.socket), but lacks modules that provide implementation of application level protocols (FTP, HTTP, SMPT, etc.)
The goal of this proposal is to design and implement high-level interface for
interaction through application level protocols.

I plan to implement TELNET-client, TELNET-server, HTTP-client and FTP-client
interfaces. This modules will enable D users to easily build applications interacting
with web services, applications controlled via TELNET, etc.

I will familiarize myself with existing networking libraries in other programming languages to gather information about commonly used techniques and interfaces that
got widely adopted. This information will help me with initial design.
To ensure ease of use, I will discuss design of modules with D community, seeking
for idiomatic D interfaces.

I will be using libcurl as a foundation for implementing this modules. This library is portable, supports a wide range of protocols[1]. Using libcurl will provide a quick
start.

Benefits for D

- Greatly simplify creation of network-enabled applications.

About me

I'm Max Klyga. I am an undergraduate software engineering student at Belarusian State
University of Informatics and Radioelectronics (Minsk, Belarus).
I'm mainly interested in system programming and after using C++ for some time I found D and fell in love with it. I also have great interest in data-mining and programming language design. I have good C++, C# and Python skills and experience using Qt-framework. I've been successfully using D in my class projects and enjoyed that experience a lot.
Lately I've been developing ODBC wrapper for D in my spare time[2].

References

   1. http://en.wikipedia.org/wiki/CURL#libcurl
   2. https://bitbucket.org/nekuromento/d-odbc

Reply via email to