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

Reply via email to