Bountysource
luau-rs
Our great sponsors
Bountysource | luau-rs | |
---|---|---|
26 | 2 | |
622 | 16 | |
0.0% | - | |
0.0 | 7.5 | |
8 months ago | over 2 years ago | |
Ruby | Rust | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Bountysource
- whats the best bounty hunt program for foss projects?
- Bountysource.com is Insolvent, do not use
-
Where to post bounties for bugfixes?
I used to use BountySource for this, but apparently they have not been honoring withdrawal requests and maybe are insolvent now. Gitcoin used to offer crypto bounties on bugfixes, but apparently they no longer do that and now only do "hackathons". I'm aware of many "bounty" sites, but they all are focused on finding security flaws not fixing specific issues.
-
Polar v1.0: Let’s Fix Open Source Funding
It sounds like bountysource, but bountysource seems to have stopped paying bounties. Found these two links on the Wikipedia Article for Bountysource:
[CRITICAL] Bountysource Escrow, Complain @ dfpi.ca.gov, 18.05.2023 - https://github.com/bountysource/core/issues/1539
What is wrong with your support and cash out process?, 20.06.2021 -
-
💲 Build your resume and get paid
Bountysource
- Get Paid to Contribute to Urllib3
-
How to earn money on FOSS
Also obvious, and also only one way - sites where repository maintainers ask for feature implementation with a reward. There is no obvious winner here, both sites are good. - BountySource — payments in USD, seemingly more requests - Tip4Commit — payments in BTC, smaller amount of requests but payments are quite bigger.
-
Support open source that you use by paying the maintainers to talk to your team
There were a few companies that tried doing that, if I recall correctly https://www.bountysource.com/ was one of them (seems to still be active). I've been following the area and also tried to run a business in the area. My experience is that while there's some demand, it's either really small, or extremely difficult to grow.
-
What are some of the reasons some open source software adds new features before fixing known bugs?
I've pledged for fixes before. I think this is the service I used. https://www.bountysource.com/
-
Please, keep in mind there is ZERO FUNDING for my projects.
There is a website called BountySource that I think is meant to do what you describe. I've never actually used it though.
luau-rs
-
Principles are products of practice, not the reverse
> - Do not repeat yourself.
I recently ran into a case where this was practically a necessity, because the alternative (of simply repeating myself) would not only have been prone to copy/paste errors during authorship, but also have resulted in code with an incredibly low signal to noise ratio (which also would have made authorship quite tedious).
For a bit of backstory, I'm currently toying with writing some Luau bindings for Rust, but Luau (by default) throws C++ exceptions instead of using longjmp. These exceptions can be thrown by almost any Luau function, and I need to prevent them from unwinding across FFI boundaries to avoid triggering Undefined Behavior, because in Rust, it is UB for a "C"-ABI function to unwind into its caller.
Here are some things that can throw C++ exceptions in Luau:
- OOM when allocating new garbage-collectible objects in an existing VM. Creating the VM itself is (most traditionally) done through luaL_newstate, which returns NULL on allocation failure, but once you have a VM, attempting to instantiate a collectible object within it will throw an exception if allocation fails. This can happen indirectly through any other operation that internally creates collectible objects.
- Attempting to modify a readonly table. Luau implements a readonly bit for tables that controls a guard against modification of that table, even by native code. It does this by throwing an exception when any such modification is attempted. However, just like collectible objects, table modification is an implementation detail of all sorts of things. While I don't expect anyone to be able to readonly the Luau registry, it is still a thing that you can do to arbitrary other tables (assuming that the host side doesn't omit or remove the `table.freeze` function from the standard library). Technically, you could defensively check the readonly bit from Rust before attempting those operations, but that would cause it to be checked twice on each operation, and this workaround doesn't generalize to other sources of exceptions, nor does it work through indirections (random other functions that happen to write to tables internally).
- Arbitrary function calls, if an interrupt callback is set. Luau supports an "interrupt" callback that is periodically called by the VM at "checkpoints" such as function calls. The interrupt callback is allowed to throw an exception, as this is the officially supported method of eventually terminating functions that contain infinite loops or other code that blocks the thread for too long. AFAIK, it can also be triggered in the middle of C closures if you perform certain operations like making a Luau function call. Although Luau function calls themselves may error, the interrupt callback can cause any Luau function call to error, even if it normally should not.
Luau probably expects those kinds of operations to be performed primarily by C++ functions executing under the VM ("C closures"), where any exceptions will be automatically caught and a status code returned to whoever called the VM. Generally, it is quite a reasonable assumption to make that a library will be used from the same language that it is written in.
However, Rust can't currently express "C closures" that are capable of unwinding, because unwinding out of a "C"-ABI function is Undefined Behavior (Rust wouldn't be able to unwind into the VM), and so is a "C"-ABI function unwinding into a Rust stack frame (library functions wouldn't be able to unwind into Rust in the first place).
The "C-unwind" ABI should eventually allow Rust to express and call FFI functions that are capable of unwinding, but it hasn't quite reached stabilization yet.
If Rust had already supported "C-unwind", I could have just defined a C++ wrapper function that catches Luau exceptions and translates them into a tagged union or something representing success or failure. Unfortunately that is not yet the case.
Luckily, Luau has some internal functions that allow you to catch exceptions regardless of whether they are exceptions or longjmps, but they work by executing a callback that you pass to it, and you can only pass a single pointer value through to the callback. Therefore, my first solution was to place the arguments to be passed in a struct, as well as a slot for a return value, and then read that struct by pointer in order to call the function and write its return value into the slot.[0]
This worked, but it was a lot of manual code for each individual function that had to be protected from errors - you had to duplicate the argument list about 4 times (wrapper function signature, struct definition, struct initializer, and wrapped function invocation), which quickly got quite tedious, especially since quite a few functions are going to need this wrapping treatment.
My first DRY implementation was to create a template that can produce a wrapper around any function, that calls it with any number of arguments, of any types. I still needed to manually prepare a list of functions in advance to protect, since you can't instantiate templates over FFI, but this was a lot more painless than the first try.
It's just that the templates are a bit of a mess.
[0]: https://github.com/LoganDark/luau-rs/blob/787eb0c7987c08304c...
[1]: https://github.com/LoganDark/luau-rs/blob/de5abd5420a5311c27...
-
Please, keep in mind there is ZERO FUNDING for my projects.
I've been asked twice to switch away from GPL and the argument is always that it limits who can use my work. Usually the argument goes past that and tries to stress just how seriously, debilitatingly, unusable my library becomes by being GPL-licensed.
What are some alternatives?
paid-open-source-projects - A list of open source software projects that will pay you to contribute
rust-lua - Safe Rust bindings to Lua 5.1
sentry-javascript - Official Sentry SDKs for JavaScript
openfare - Micropayment funded software.
liberapay.com - Source code of the recurrent donations platform Liberapay
Kind - A next-gen functional language [Moved to: https://github.com/Kindelia/Kind2]
gitpay - Bounties for issues on demand. Be rewarded by learning, using Git workflow and continuous integration
sentry-symfony - The official Symfony SDK for Sentry (sentry.io)
kwin-lowlatency - archived - X11 full-screen unredirection and lots'a settings for KWin
bullet_train - The Open Source Ruby on Rails SaaS Template
relay - Sentry event forwarding and ingestion service.
qmk_distro_msys - A Windows one-click installer for the QMK CLI