Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Good finds #13

Open
felix91gr opened this issue Apr 22, 2018 · 3 comments
Open

Good finds #13

felix91gr opened this issue Apr 22, 2018 · 3 comments
Labels
discussion Issues where we brainstorm and come up with good ideas

Comments

@felix91gr
Copy link
Owner

Here I'm gonna put the libraries that seem to be:

  • Well supported
  • Well tested
  • Cross-platform
  • Production-ready: developed enough to be used by third parties. For example, CompilerKit fits all of the above but it's not yet finished, and thus can't be put on the same list as everything else.
@felix91gr
Copy link
Owner Author

Command Line UI tools

Workflow-enabler frameworks

  • Quick: a behavior driven development framework.
  • Nimble: matcher and testing counterpart for Quick.
  • Spectre: a BDD framework and test runner for Swift.
  • ReactiveSwift: Streams of values over time. I don't know what that is exactly, but it seems to be very useful. It has like 200 contributors as well.
  • PromiseKit: async++
  • Deferred: a "futures library"
  • AsyncNinja: primitives for enabling concurrency and reactive programming.
  • Result: microframework for modeling and handling errors in code.

System libraries

  • Compression: Compression algorithms
  • Perfect-Zip: utility for Zipping files
  • RandomKit: this one's going to be obsolete after the "Random Unification" proposal gets rolled out. But until then, it's probably very useful.

Signal and image processing

Data Structures

String Processing

  • Guitar: string and regex library written in Swift.

@vknabel
Copy link
Collaborator

vknabel commented Apr 22, 2018

If we add ReactiveSwift (spoiler: we should) we should add RxSwift, too. Both are just different flavors of the same concept.

You can see both as sequences that may be async. You can map, filter and flatMap on them. Plus they have some elements of the observer pattern and allow you to have side effects.

Additionally:
Both PathKit and Files provide a better API to handle paths and their contents.

@felix91gr
Copy link
Owner Author

Both PathKit and Files provide a better API to handle paths and their contents.

Indeed! I'd forgotten about them. They look pretty great!
Files passes every test on my side, and I've been working with kylef to update which tests that are failing can be passed on PathKit

It looks like what PathKit needs is just a little more love from the Foundation team to get 100% passing :)

If we add ReactiveSwift (spoiler: we should) we should add RxSwift, too.

I tend to agree. I downloaded RxSwift as well, but couldn't make it pass its tests. I think it depends on Darwin directly. I'll post an issue to them to see if they intend to support Linux and if what they're importing from Darwin can be replaced with something from Foundation :)

You can see both as sequences that may be async. You can map, filter and flatMap on them. Plus they have some elements of the observer pattern and allow you to have side effects.

I learned part of what I think was Reactive Programming with C#. You had events (e.g. a UI button press or a socket recieving new info) to which you could subscribe functions. Then when those events were triggered, all of the functions subscribed to them would activate and recieve the events' predefined parameters as input. This is like that, but more general? Or am I way off?

felix91gr added a commit that referenced this issue Apr 26, 2018
Added most of the entries described [here](#13).
Added tags to ease search.
Refined classification.
TODO: add SDG libraries and polish this PR.
@felix91gr felix91gr added the discussion Issues where we brainstorm and come up with good ideas label May 3, 2018
felix91gr added a commit that referenced this issue May 8, 2018
* Added most of the entries described [here](#13).
* Added tags to ease search.
* Refined classification.
* Added SDG libraries and app
* Included a nice expandable description for SwiftGraph
@vknabel vknabel mentioned this issue Jun 8, 2018
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Issues where we brainstorm and come up with good ideas
Projects
None yet
Development

No branches or pull requests

2 participants