www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Hunt Framework 3.0.0 Released, Web Framework for DLang!

reply zoujiaqing <zoujiaqing gmail.com> writes:
This version is an important version jointly created by huntlabs 
and the team developers of Putao technology service end through 
nearly half a year's development iteration. Relying on the 
dependency injection technology, the module division of the whole 
framework becomes more reasonable and easy to expand and maintain.

Now you can easily use dlang language to build stable server-side 
applications, including the support of restful API, grpc, 
rabbitmq, redismq, redis cache, momory cache, entity ORM and 
other key technologies.

Developers can build web server-side applications as fast as 
laravel and spring boot;This version further simplifies the 
operation, improves the friendliness of developers, and allows 
more PHP and Java developers to start developing web services in 
a few minutes.


  * Reconstruct the core of the framework and rely on the 
dependency injection technology to enhance the scalability;
  * The performance of binary serialization module is improved by 
1000%, which is 100% faster than that of C + + binary library 
cereal;
  *  Enhance the operation of JSON serialization, support the 
mutual conversion and binding of more complex objects and JSON 
strings;
  *  Enhanced error handling, in case of various 500 errors, 
detailed error stack information can be displayed according to 
the settings;
  *  Integrate the latest hunt console, and add parameters for 
configuration during startup;
  *  The form of configuration file is redesigned to facilitate 
the user-defined configuration file to be loaded uniformly by the 
framework and pave the way for the future configuration center;
  *  After refactoring, many basic framework service provider 
modules are added;
  *  Support more stable worker mode, improve the underlying 
concurrency;
  *  Support the latest rabbitmq, based on hunt AMQP 
implementation;
  *  Redis reconstructs a new connection pool scheme, which is 
more stable;
  *  Database and redis object unified recycling management 
mechanism to better control memory allocation;
  *  Integrated user security authentication scheme based on hunt 
Shiro + hunt JWT;
  *  Both database and redis use hunt net network library to 
realize communication, reduce dependence on the third-party 
library, and enhance traceability;
  *  Improve the stability of epoll concurrency model on Linux 
platform;
  *  Support the IOCP model of Windows platform;
  *  Improve the stability of kqueue concurrency model of macOS 
platform;
  *  Remove the stomp module because it is not commonly used in 
general projects;
  *  The API of hunt cache is improved, and the latest binary 
serialization library is adopted at the bottom;
  *  Remove the routing module and integrate the routing module in 
the hunt HTTP library;
  *  Enhance and improve request and response objects;
  *  Enhance httpclient in hunt HTTP library, including various 
localized cookie operations and stability improvement of file 
upload;
  *  Integrate breadcrumbs to make crumbs easier to manage;
  *  Add the asynchronous operation scheme of taskexecutor based 
on the internal message queue (rabbitmq, redismq, memorymq);
  *  Enhance the compatibility of the twig template engine, closer 
to the usage habits of PHP developers;



import hunt.framework;

void main(string[] args)
{
     app().run(args);
}


Gitee for Chinese users: https://gitee.com/huntlabs/hunt-framework
Github for globle users: 
https://github.com/huntlabs/hunt-framework


D language Chinese community: https://forums.dlangchina.com
Official wiki document: 
https://github.com/huntlabs/hunt-framework/wiki
Official Homepage: https://www.huntlabs.net
May 01 2020
next sibling parent Greatsam4sure <greatsam4sure yahoo.com> writes:
On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 This version is an important version jointly created by 
 huntlabs and the team developers of Putao technology service 
 end through nearly half a year's development iteration. Relying 
 on the dependency injection technology, the module division of 
 the whole framework becomes more reasonable and easy to expand 
 and maintain.

 [...]
Thanks for the greatwork. This really sound or look promising. Keep up the good work. Is there any book on the or tutorial on the huntframework?
May 01 2020
prev sibling next sibling parent reply welkam <wwwelkam gmail.com> writes:
On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 <...>
I did a quick look and it looks like http server + some goodies. Is this a correct assessment? If yes what is the status of http 2.0, ssl and bzip support?
May 01 2020
parent reply Heromyth <bitworld qq.com> writes:
On Friday, 1 May 2020 at 13:11:23 UTC, welkam wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 <...>
I did a quick look and it looks like http server + some goodies. Is this a correct assessment? If yes what is the status of http 2.0, ssl and bzip support?
Not exactly. The whole Hunt Framework includes many other stuffs like database, redis, amqp etc. except for HttpServer and HttpClient. Of course, the HTTP 2.0 and TLS are supported in Hunt Framework. Here are some simple demos: https://github.com/huntlabs/hunt-http/tree/master/examples/H2C-Demo https://github.com/huntlabs/hunt-http/tree/master/examples/HttpDemo
May 01 2020
parent welkam <wwwelkam gmail.com> writes:
On Friday, 1 May 2020 at 16:32:27 UTC, Heromyth wrote:
 On Friday, 1 May 2020 at 13:11:23 UTC, welkam wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 <...>
I did a quick look and it looks like http server + some goodies. Is this a correct assessment? If yes what is the status of http 2.0, ssl and bzip support?
Not exactly. The whole Hunt Framework includes many other stuffs like database, redis, amqp etc. except for HttpServer and HttpClient. Of course, the HTTP 2.0 and TLS are supported in Hunt Framework. Here are some simple demos: https://github.com/huntlabs/hunt-http/tree/master/examples/H2C-Demo https://github.com/huntlabs/hunt-http/tree/master/examples/HttpDemo
Took a look at https://github.com/huntlabs and it seems that these guys have everything in place to make web facing applications. Thats a lot of work. I should take it out for a spin to see how it "handles"
May 01 2020
prev sibling next sibling parent Guillaume Piolat <firstname.lastname gmail.com> writes:
On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 Developers can build web server-side applications as fast as 
 laravel and spring boot;This version further simplifies the 
 operation, improves the friendliness of developers, and allows 
 more PHP and Java developers to start developing web services 
 in a few minutes.
Sounds like a gigantic amount of work, congratulations!
May 01 2020
prev sibling parent reply Dukc <ajieskola gmail.com> writes:
On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 [snip]
Thanks, but: Some of the files have Apache license, but some have none. I think you should add a license to the whole repository that would cover those files that don't have their own.
May 06 2020
next sibling parent Tony <tonytdominguez aol.com> writes:
On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 [snip]
Thanks, but: Some of the files have Apache license, but some have none. I think you should add a license to the whole repository that would cover those files that don't have their own.
This library has potential license issues as it has many files, at least on the core section that come from OpenJDK. Even the Java specific comments have been left I, such as this in AbstractCollection.d . The OpenJDK is GPL with static linking exception. It probably isn't kosher to take those files and make them Apache 2.0, even with modifications. This class is a member of the * <a href="{ docRoot}/java/util/package-summary.html#CollectionsFramework"> * Java Collections Framework</a>
May 06 2020
prev sibling parent reply zoujiaqing <zoujiaqing gmail.com> writes:
On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 [snip]
Thanks, but: Some of the files have Apache license, but some have none. I think you should add a license to the whole repository that would cover those files that don't have their own.
OK, thanks ;)
May 06 2020
parent reply Jan =?UTF-8?B?SMO2bmln?= <hrominium gmail.com> writes:
On Thursday, 7 May 2020 at 05:04:12 UTC, zoujiaqing wrote:
 On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 [snip]
Thanks, but: Some of the files have Apache license, but some have none. I think you should add a license to the whole repository that would cover those files that don't have their own.
OK, thanks ;)
I have a somewhat stupid question. I asked it on reddit, but I got no answer there. I haven't done much with web or networking in general until now, thus excuse my ignorance. What is the difference between hunt and vibe-d?
May 07 2020
next sibling parent WebFreak001 <d.forum webfreak.org> writes:
On Friday, 8 May 2020 at 06:41:59 UTC, Jan Hönig wrote:
 On Thursday, 7 May 2020 at 05:04:12 UTC, zoujiaqing wrote:
 On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote:
 [...]
I have a somewhat stupid question. I asked it on reddit, but I got no answer there. I haven't done much with web or networking in general until now, thus excuse my ignorance. What is the difference between hunt and vibe-d?
hunt and vibe-d are different libraries, different code base, no dependencies between them two. If you use the Hunt Framework you also get a lot more functionality for web development than just the basics. vibe.d mostly just provides the basics with a few extra convenience things a framework would offer. Hunt Framework on the other hand seems like it has been created especially for big projects in mind with dependency injection, MVC and some other common coding patterns.
May 08 2020
prev sibling next sibling parent Panke <tobias pankrath.net> writes:
On Friday, 8 May 2020 at 06:41:59 UTC, Jan Hönig wrote:
 On Thursday, 7 May 2020 at 05:04:12 UTC, zoujiaqing wrote:
 On Wednesday, 6 May 2020 at 22:28:28 UTC, Dukc wrote:
 On Friday, 1 May 2020 at 10:54:55 UTC, zoujiaqing wrote:
 [snip]
Thanks, but: Some of the files have Apache license, but some have none. I think you should add a license to the whole repository that would cover those files that don't have their own.
OK, thanks ;)
I have a somewhat stupid question. I asked it on reddit, but I got no answer there. I haven't done much with web or networking in general until now, thus excuse my ignorance. What is the difference between hunt and vibe-d?
I can say anything about hunt, but vibe-d is three things: 1. https://github.com/vibe-d/eventcore This is the core of it and gives you a proactor for async programming with callbacks. Instead of a blocking 'write(data)' call you do 'write(data, dlg)' where dlg is a delegate that is called once the write has finished. 2. https://github.com/vibe-d/vibe-core Writing non-trivial programs with a bare proactor quickly leads to callback hell. Far easier is to hide the callback behind fibers. This is what vibe-core does. Everything runs as a fiber, which gets suspended on call to eventcore's async interface and is automatically resumed after the async call finishes. 3. https://github.com/vibe-d/vibe.d This implements stuff that's useful for web programming on top of 2. HTTP, WebSockets, databases, serialization, stuff like that.
May 08 2020
prev sibling parent reply zoujiaqing <zoujiaqing gmail.com> writes:
On Friday, 8 May 2020 at 06:41:59 UTC, Jan Hönig wrote:
 What is the difference between hunt and vibe-d?
Hunt and Vibe are important series frameworks in D language ecology, but there is no connection between the two frameworks. 1.hunt library (https://github.com/huntlabs/hunt) contains the abstraction of cross-platform network io, as well as functions such as binary serialization and json object binding. ( hunt library is currently the best performing network io in D languages.) 2.hunt-net (https://github.com/huntlabs/hunt - net) is a network protocol library based on hunt library implementation that contains abstract encoder and decoder support. 3.hunt-http (https://github.com/huntlabs/hunt - http) is a hunt-net implementation-based http library that contains both http1.1、http/2 and websocket support and powerful HttpClient implementations. 4.hunt-database (https://github.com/huntlabs/hunt - database) is an abstraction of a database, and the bottom layer also uses hunt-net for network communication. the protocol parsing part of PostgreSQL and MySQL two databases is realized completely using the language of D, which includes the implementation of asynchronous operation interface and database connection pool. 5. hunt-redis (https://github.com/huntlabs/hunt-redis) is a redis client implementation that sends and receives network data based on hunt-net and also supports connection pooling. 6.hunt-amqp (https://github.com/huntlabs/hunt-amqp) is a amqp 1.0 implementation, mainly let D language native support RabbitMQ, network layer is also based on the creation of. 7.hunt-entity (https://github.com/huntlabs/hunt-entity) is a ORM implementation, similar to php doctrine2 and java JPA.. 8.hunt-framework (https://github.com/huntlabs/hunt-framework) is currently the most fully functional web framework, in the language close to practical frameworks such as springboot、laravel、django, built-in template engines like jinja2 and twig, just through the configuration file to make the entire framework run smoothly. One of our demo projects is a forum project called `dicoth`, which is based on hunt-framework. Of course, this project is currently a sample code, but it doesn't prevent you from seeing how hunt-framework use it, project address (https://github.com/dicoth/dicoth). Summary: HuntLabs entire hunt framework-related ecosystem contains most of the tools needed for the server, but also draws on a lot of excellent content from languages such as java and php, hoping that the D language can occupy part of the server market.
May 09 2020
next sibling parent Jan =?UTF-8?B?SMO2bmln?= <hrominium gmail.com> writes:
Thanks everyone for the clarification!
May 09 2020
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2020-05-09 09:02, zoujiaqing wrote:

 ( hunt library is currently the best performing network io in D languages.)
Would be interesting to see how Hunt and Mecca [1] compare. Mecca is quite a basic library, compared to Hunt. It doesn't support anything more high level than TCP sockets. http://github.com/weka-io/mecca -- /Jacob Carlborg
May 11 2020