Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6923295
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T10:31:04+00:00 2026-05-27T10:31:04+00:00

I love Go, especially the goroutines. They are simple and efficient. After some digging,

  • 0

I love Go, especially the goroutines. They are simple and efficient. After some digging, it seems that they are basically fibers multiplexed onto a pool of kernel threads (correct me if I’m wrong).

That being said, are there any standard libraries (or relatively popular and supported 3rd party additions) in D?

The main things I want are:

  • Lightweight- threads use too much memory and take too much CPU
  • Simple- data-sharing isn’t too important, but simple message passing is
  • Managed- it would be nice for this to be at the run-time level

The main goal here is to make a web server as efficiently as possible to rival the speed of Node.js and Go. This means there could be many active connections (http, websockets, data streaming).

I like things about the other platforms mentioned, but D is much more generalized. If it isn’t too clunky, I would choose D over the others.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T10:31:04+00:00Added an answer on May 27, 2026 at 10:31 am

    There’s nothing exactly equivalent but there are two modules that may provide something similar enough for your needs:

    1. std.concurrency provides message passing and guaranteed isolation unless the shared qualifier is used to gain very limited, explicit shared memory. However, you don’t (yet) get the multiplexing of fibers onto threads that goroutines provide. Right now, every call to spawn starts a new OS thread. Also, there’s still some work to be done to make immutability usable enough to make this paradigm reach its full potential. For more on this paradigm, see the free chapter of Andrei Alexandrescu’s “The D Programming Language”.

    2. std.parallelism provides tasks. It’s geared towards parallelism, not concurrency. (These are not the same thing even though you need concurrency to implement parallelism.) Therefore, instead of message passing, a task simply executes with no communication with the calling thread and then returns its return value to the calling thread. Additionally, if there are more tasks than threads, the excess tasks are queued, not multiplexed using fibers.

    Edit: I originally designed and wrote std.parallelism and am willing to consider enhancement requests to suit needs such as yours, as long as they don’t expand the scope of the module too far into general-case concurrency. If std.parallelism does almost what you need but not quite, please post a feature request either here or on the digitalmars.d newsgroup.

    Also, even though I would likely not be the implementer of such a request, feel free to suggest enhancements to std.concurrency.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'd love some other opinions on what's more efficient in this code. Basically in
I love the demoscene a lot, especially those small 4K exefiles. They don't have
I love grids - especially the cool third party ones like Devex, C1 etc..
I love programming with .NET, especially C# 3.0, .NET 3.5 and WPF. But what
I love list comprehensions in Python, because they concisely represent a transformation of a
I love the ease that the ASP.NET Ajax control Toolkit provides to ASP.NET developers.
I enjoy using NetBeans, especially for development with Maven, however, I've found recently that
I've just found IPython and I can report that I'm in deep love. And
I love the SUBSTRING_INDEX function in MySQL, especially because you can use negative indexes
I love declaring variables on the stack, especially when using the standard container. Each

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.