incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niklas Gustavsson <nik...@protocol7.com>
Subject [PROPOSAL] Deft for incubation
Date Mon, 27 Jun 2011 10:37:45 GMT
Hi,

I would like to propose Deft to be an Apache Incubator project. Deft
is a non-blocking, asynchronous, event driven high performance web
framework running on the JVM.

Here's a link to the proposal in the Incubator wiki:
http://wiki.apache.org/incubator/DeftProposal

As you will note, the list of mentors is in need of some volunteers,
so if you find this interesting, feel free to sign up. Needless to
say, the same of course goes for committers.

You'll find the initial proposal pasted below.

/niklas



= Deft Proposal =
== Abstract ==
Deft is a non-blocking, asynchronous, event driven high performance
web framework running on the JVM.

== Proposal ==
Deft is a web framework that makes using it feel a bit like ordinary
Java servlets, but with additional tools and optimizations to take
advantage of the underlying non-blocking infrastructure. The framework
is distinct from most mainstream Java web server frameworks because it
is non-blocking and reasonably fast. It's ideal for real-time web
services because it can support thousands of simultaneous idle
connections.

Key features:

 * Optimized for thousands of simultaneous connections
 * Using pure Java NIO (java.nio & java.nio.channels)
 * Asynchronous (nonblocking I/O)
 * Event driven

== Background ==
Deft was initially inspired by Facebook's (actually !FriendFeed's )
Tornado open source project. Tornado is written in python and was open
sourced by Facebook September 2009.  Deft was started in October 2010
by Roger Schildmeijer and Jim Petersson,  since then, a number of
other developers (from different parts of the world) have submitted
patches to the project. External contributors have also been involved
in the pre-commit review process that Deft has adopted from Apache
Cassandra. Currently the project is hosted on github and has 133
watchers and 19 forks.

== Rationale ==
The goals of the project are very much aligned with the goals of the
Apache Software Foundation. i.e there is interest in (continuing to)
foster a collaborative, consensus based development process, using an
open and pragmatic software license, and a desire to create high
quality software that leads the way in its field.

== Initial Goals ==
Even though the basic functionality is in place we would like to see
the following features included in future releases:

 * More third party libraries that works within Deft's IOLoop
 * Https support for the async http client
 * Optimized buffer usage in the async socket abstraction
 * Template engine
 * Chunked transfer-encoding
 * Websockets
 * Https support
 * Improved Http 1.1 compliance

= Current Status =
== Meritocracy ==
Deft has been an open source project since day one. The project has
transformed from being primarily a two person led (and funded) project
to one with a number of diverse participants. Any potentially
controversial architecture change is discussed on the public mailing
list. Development has been coordinated primarily through a mailing
list, pull requests and with some IRC.

== Community ==
Building an active open source community will be one of Deft's top
priority. The amount of interest in the project from social  networks
(like twitter and github) and individual developers and users suggests
a strong community will  develop once the framework to support one is
in place. Currently the Deft community exists out of the core
developers, and the users integration Deft in an end-user products
(the actual number is unknown).

== Core Developers ==
 * Roger Schildmeijer
 * Jim Petersson
 * Johnathan Meehan
 * Nicholas Whitehead
 * Séven Le Mesle

Other contributors to the project include: William Edwards, Jacob
Kristhammar, Rickard Böttcher, ilmich, 1730wang (Nemo), Khaled
Essghaier, Mikael Piotrowski

== Alignment ==
Deft is a web framework with a strong focus on speed and asynchronous
principles. Some parts of Deft are a complex (especiallt the
asynchronous parts) and it makes sense to  have a
supporting/developing community. Apache provides a solid base  with
established processes and rules to create such community.

== Known Risks ==
=== Inexperience with Open Source ===
The current code that has been developed for Deft is open sourced
under the Apache 2.0 license. The majority of the initial developers
of Deft are familiar with the Apache model for open-source
development.

=== Orphaned Products ===
All participants are active users and contributors to  open source.
One of them (Roger Schildmeijer) has experience as a contributor  on
the Apache Cassandra open source project.

=== Homogeneous Developers ===
Deft's initial set of committers include people that have a strong JVM
background, and  are spread over a number of countries and different
employers.

=== Reliance on Salaried Developers ===
None of the developers working on Deft are salaried specifically to
work on the project. The initial set of committers will continue to
use their spare time to develop Deft.

=== Relationships with Other Apache Products ===
Deft has dependencies upon other Apache Projects: !HttpClient and
Maven. Also, Deft comes with a "built-in" asynchronous http client. It
could be worth time to investigate if parts of
[[http://mina.apache.org/asyncweb/client-ideas.html|Apache Mina's
async http client]] could be reused.

=== An Excessive Fascination with the Apache Brand ===
The initial set of developers respect the Apache brand and feel that
Apache is the right place to establish a healthy open source
community. Deft itself will hopefully have benefits from Apache, in
terms of  attracting a community and establishing a solid group of
developers. However, even if this proposal is not accepted, the
development will continue.  As such, there is no need to, or reason
to, "abuse" the brand.

== Documentation ==
Infoq article about Deft: http://www.infoq.com/articles/deft-loft

Deft documentation: http://deftserver.org/

Deft issue tracker and source: https://github.com/rschildmeijer/deft/

Deft Continuous Integration: http://savagesprout.com:8180/jenkins/

== External Dependencies ==
The external dependencies that Deft uses are all Apache license or
compatible licenses.

 * Google Guava (http://code.google.com/p/guava-libraries/, Apache License 2.0)
 * Logback (http://logback.qos.ch, Dual license, LGPL 2.1 and EPL v1.0)
 * Apache HttpClient (for unit/system tests)
(http://hc.apache.org/httpcomponents-client-ga/, Apache License 2.0)
 * Ning's Async Http Client (for unit/system tests)
(https://github.com/sonatype/async-http-client, Apache License 2.0)
 * JUnit (http://www.junit.org/, Common Public License - v 1.0)
 * javax.activation
(http://mvnrepository.com/artifact/javax.activation/activation/1.1.1,
Common Development and Distribution License (CDDL) Version 1.0)

== Required Resources ==
=== Mailing lists ===
 * deft-private
 * deft-dev
 * deft-commits
 * deft-user

=== Subversion Directory ===
https://svn.apache.org/repos/asf/incubator/deft

=== Issue Tracking ===
JIRA DEFT (Deft)

=== Other Resources ===
 * Jenkins for continuos integration.
 * deftserver.org domain to be transferred to ASF upon incubation.

== Initial Committers ==
 * Roger Schildmeijer (schildmeijer [at] gmail com)
 * Jim Petersson (jim.petersson [at] gmail com)
 * Johnathan Meehan (jmeehan [at] phasevariance com)
 * Nicholas Whitehead (nwhitehead [at] heliosdev org)
 * Séven Le Mesle (slemesle [at] xebia fr)

== Sponsors ==
=== Champion ===
 * Niklas Gustavsson ngn@apache.org

=== Nominated Mentors ===


=== Sponsoring Entity ===
 * Apache Incubator PMC

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message