The overall design does not deviate much from my proof of concept [2] and that still makes a good read to understanding the overall architecture. If you want to get a sense of how it is built up, the API comes with full doxygen documentation for the public API [3], and I have also done a PoC change for HaikuDepot which is useful as an illustration on what the impact for the user of the new library is. [4] There is also a test suite that may give some insight into the day to day ergonomics of the API [5]. The current state is that I am fairly confident that many HTTP requests will actually work, but I do expect rough edges with a protocol with this many diverse implementations. There is also a list of features yet to be implemented on Trac [6]. Additionally, I still want/need to do performance testing. The goal of merging the kit right now is to start making it available for more uses, and through that also give a chance to shape its future. There are also some design decisions that need review, most notably I expect some discussion around the uses of C++ 17 idioms (like std::optional and std::string_view) and around the use of exceptions for error handling. The impact of merging right now should be near zero: the netservices2 kit lives in its own header space, and builds into its own static library (libnetservices2.a). It is not yet used in any of the apps in our repository. The branch does remove the deprecated services kit from the libnetapi.so library, though it leaves libnetservices.a intact. After our previous announcement to remove it after beta 3, this should be expected. [2] https://github.com/nielx/haiku-netservices-rfc/tree/exceptions [3] https://git.haiku-os.org/haiku/tree/docs/user/netservices?h=dev/netservices [4] https://review.haiku-os.org/c/haiku/+/5692 [5] https://git.haiku-os.org/haiku/tree/src/tests/kits/net/netservices2?h=dev/netservices [6] https://dev.haiku-os.org/wiki/Development/NetServices2 Change-Id: I5d0b7e2619699f39a2506588417b57391f0f5cc2
Haiku
Homepage | Mailing Lists | IRC Channels | Issue Tracker | API docs
Haiku is an open-source operating system that specifically targets personal computing. Inspired by the BeOS, Haiku is fast, simple to use, easy to learn and yet very powerful.
Goals
- Sensible defaults with minimal configuration required.
- Clean, clear, concise code.
- Unified desktop environment.
Trying Haiku
Haiku provides pre-built nightly images and release images. Haiku is compatible with a large variety of hardware, but in case you don't want to "take the plunge" and install Haiku on bare metal, you can install it on a virtual machine (VM) instead. If you've never used a VM before, you can follow one of the "Emulating Haiku" guides.
Compiling Haiku
See ReadMe.Compiling
.
Contributing
Haiku is a meritocratic open source project with a large variety of tasks. Even if you can't write code, you can still help! Haiku needs designers, (technical) writers, translators, testers... Get involved and help out!
Contributing code
If you're submitting a patch to us, please make sure you're following the patch submitting guidelines.
If you're having trouble finding something in the source tree, you can use one of our web-based source code browsers:
- https://xref.landonf.org/ (OpenGrok, provided by Landon Fuller)
- https://git.haiku-os.org/ (git, provided by Haiku, Inc.)
Contributing documentation
The main piece of documentation that still needs work are the API docs (found
in the tree at docs/user
). Just find an undocumented class, write
documentation for it, and submit a patch.
Contributing translations
See wiki:i18n.
Contributing software ports
See HaikuPorts.
Contributing to our infrastructure
See Infrastructure.