[GSoC Proposal draft] High-Level Networking

Jonas Drewsen jdrewsen at nospam.com
Wed Mar 30 07:48:59 PDT 2011


On 30/03/11 03.04, Max Klyga wrote:
> 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
>

Great to see that you're interested in improving the Phobos library!

There already is some work being done on this.

I've created bindings for libcurl that was accepted into Phobos a couple 
of days ago (see etc.c.curl module). This is the foundation of some 
network client classes that I'm doing. I intent to submit this to Phobos 
when I've implemented the last of the suggestions that I received from 
the community earlier. My initial target is FTP and HTTP
support.

See:
https://github.com/jcd/phobos/blob/curl/etc/curl.d

This does have some overlap with your proposal but that doesn't have to 
be a bad thing.

If this proposal gets accepted you have the libcurl bindings already as 
a kickstart.

Some other options are to extend the client classes that I'm doing. Or 
to implement the network server classes.

/Jonas


More information about the Digitalmars-d mailing list