Mix

Top 17 Mix Open-Source Projects

  • mix

    ☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Server / PHP 命令行模式开发框架,支持 Swoole、Swow、WorkerMan、FPM、CLI-Server (by mix-php)

  • intellij-elixir

    Elixir plugin for JetBrain's IntelliJ Platform (including Rubymine)

  • Project mention: Why Elixir (2014) | news.ycombinator.com | 2024-03-27

    Not sure what you're looking for in IDE support...

    If you're an IntelliJ addict, there's this IDE extension which has worked well for me: https://github.com/KronicDeth/intellij-elixir

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • curriculum

  • Project mention: Best Paths for Learning Elixir | /r/elixir | 2023-12-06
  • default-composer

    A tiny (~500B) JavaScript library that allows you to set default values for nested objects

  • Project mention: 👋 Say Goodbye to Spread Operator: Use Default Composer | dev.to | 2023-06-05

    Original article: https://aralroca.com/blog/default-composer When working with objects in JavaScript, it is common to need to set default values for empty strings/objects/arrays, null, or undefined properties. When dealing with nested objects, this can become even more complicated and require complex programming logic. However, with the "default-composer" library, this task becomes simple and easy. What is "default-composer"? "default-composer" is a lightweight (~300B) JavaScript library that allows you to set default values for nested objects. The library replaces empty strings/arrays/objects, null, or undefined values in an existing object with the defined default values, which helps simplify programming logic and reduce the amount of code needed to set default values. Default Composer logo Benefits over Spread Operator and Object.assign While ...spread operator and Object.assign() can also be used to set default values for objects, "default-composer" provides several benefits over these methods. Works with nested objects, whereas the spread operator and Object.assign() only work with shallow objects. More concise and easier to read than spread operator or Object.assign(). The code required to set default values with these methods can become very verbose and difficult to read, especially when dealing with nested objects. More granular control over which properties should be set to default values. With spread operator and Object.assign(). Imagine we have this original object: const original = { name: "", score: null, address: { street: "", city: "", state: "", zip: "", }, emails: [], hobbies: [], another: "anotherValue" }; Enter fullscreen mode Exit fullscreen mode And these are the defaults: const defaults = { name: "John Doe", score: 5, address: { street: "123 Main St", city: "Anytown", state: "CA", zip: "12345", }, emails: ["[email protected]"], hobbies: ["reading", "traveling"], }; Enter fullscreen mode Exit fullscreen mode We want to merge these objects replacing the original values that are "", null, [], undefined and {} to the default value. So the idea is to get: console.log(results) /** * { * "name": "John Doe", * "score": 5, * "address": { * "street": "123 Main St", * "city": "Anytown", * "state": "CA", * "zip": "12345" * }, * "emails": [ * "[email protected]" * ], * "hobbies": [ * "reading", * "traveling" * ], * "another": "anotherValue" **/ Enter fullscreen mode Exit fullscreen mode Probably with spread operator we will have to do something like that: const results = { ...defaults, ...original, name: original.name || defaults.name, score: original.score ?? defaults.score, // "??" beacause 0 is valid address: { ...defaults.address, ...original.address, street: original.address.street || defaults.address.street, city: original.address.city || defaults.address.city, state: original.address.state || defaults.address.state, zip: original.address.zip || defaults.address.zip, }, emails: original.emails.length ? original.emails : defaults.emails, hobbies: original.hobbies.length ? original.hobbies : defaults.hobbies, }; Enter fullscreen mode Exit fullscreen mode and with Object.assign something like this: const results = Object.assign({}, defaults, original, { name: original.name || defaults.name, score: original.score ?? defaults.score, // "??" beacause 0 is valid address: Object.assign({}, defaults.address, original.address, { street: original.address.street || defaults.address.street, city: original.address.city || defaults.address.city, state: original.address.state || defaults.address.state, zip: original.address.zip || defaults.address.zip, }), emails: original.emails.length ? original.emails : defaults.emails, hobbies: original.hobbies.length ? original.hobbies : defaults.hobbies, }); Enter fullscreen mode Exit fullscreen mode Maintaining this can be very tidious, especially with huge, heavily nested objects. Headache... With defaultComposer we could only use this: import defaultComposer from 'default-composer'; // 300B // ... const results = defaultComposer(defaults, original); Enter fullscreen mode Exit fullscreen mode Easier to maintain, right? 😉 Happier an easier What happens if in our project there is a special property that works differently from the others and we want another replacement logic? Well, although defaultComposer has by default a configuration to detect the defautable values, you can configure it as you like. import { defaultComposer, setConfig } from 'default-composer'; setConfig({ // This function is executed for each value of each key that exists in // both the original object and the defaults object. isDefaultableValue: ( // - key: key of original or default object // - value: value in the original object // - defaultableValue: pre-calculed boolean, you can use or not, // depending if all the rules of the default-composer library are correct // for your project or you need a totally different ones. { key, value, defaultableValue } ) => { if (key === 'rare-key') { return defaultableValue || value === 'EMPTY' } return defaultableValue; }, }); Enter fullscreen mode Exit fullscreen mode Conclusions I've introduced the "default-composer" library as a solution for setting default values for nested objects in JavaScript. The library is lightweight and provides more concise and easier-to-read code than the spread operator and Object.assign methods. It also offers more granular control over which properties should be set to default values. In this article I provide examples of how to use the library and how it simplifies the code for maintaining nested objects. Finally, I explain how the library can be configured to handle special cases where a different replacement logic is required. Overall, "default-composer" is a useful library for simplifying the task of setting default values for nested objects in JavaScript.

  • Deej-AI

    Create automatic playlists by using Deep Learning to *listen* to the music.

  • Project mention: Ask HN: Flac/MP3 listeners: How do you store/play your music? | news.ycombinator.com | 2023-06-05

    For automatic playlists that make at least some sense I used https://github.com/teticio/Deej-AI in the past, is not human-level good but the results are enjoyable.

  • values.js

    :grapes: Get the tints and shades of a color

  • X32-Behringer

    This GIT repo (C language) holds applications and utilities for the Behringer X32 and M32 mixing consoles. Additional details, documentation, implementation examples and apps can be found in my website:

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • mix_gleam

    ⚗️ Build Gleam code with mix

  • mix_test_interactive

    Interactive watch mode for Elixir's mix test. https://hexdocs.pm/mix_test_interactive/

  • active

    ♾️ ACTIVE: Filesystem Activities

  • exgen

    A templating library for generating reusable Elixir projects

  • Merge-Stable-Diffusion-models-without-distortion-gui

    gui for Merge-Stable-Diffusion-models-without-distortion-gui

  • advent_of_code_utils

    Elixir utilities for Advent of Code

  • react-native-color-toolkit

    A well-tested library written in typescript to with a lot of tools to help mobile developers who care about color.

  • odyssey

    Authentically researching and rebuilding Halo's music with original hardware, + new and original music with the same genuine sound palette. (by neonspider)

  • polykill

    Command line utility for removing dependencies and build artifacts from unused projects.

  • Project mention: What's everyone working on this week (23/2023)? | /r/rust | 2023-06-05

    Polishing up to my dependency / build artifact killer polykill!

  • ideatracker

    The simple Idea Tracker CRUD app

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

Mix related posts

  • Best Paths for Learning Elixir

    1 project | /r/elixir | 6 Dec 2023
  • Are there any good and updated free resources to learn Phoenix framework?

    1 project | /r/elixir | 11 Jul 2023
  • Best free courses for learning elixir?

    1 project | /r/elixir | 15 Jun 2023
  • What's your opinion on Dockyard Academy?

    1 project | /r/elixir | 29 Mar 2023
  • Educative.io experience

    1 project | /r/elixir | 5 Feb 2023
  • What resources does Elixir have for people that want to learn it but have never programmed before?

    3 projects | /r/elixir | 9 Dec 2022
  • Has anyone used GDNative with C? (Not C++)

    1 project | /r/godot | 13 Apr 2021
  • A note from our sponsor - InfluxDB
    www.influxdata.com | 4 May 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →

Index

What are some of the best open-source Mix projects? This list will help you:

Project Stars
1 mix 1,924
2 intellij-elixir 1,775
3 curriculum 864
4 default-composer 460
5 Deej-AI 303
6 values.js 267
7 X32-Behringer 217
8 mix_gleam 139
9 mix_test_interactive 68
10 active 66
11 exgen 35
12 Merge-Stable-Diffusion-models-without-distortion-gui 34
13 advent_of_code_utils 14
14 react-native-color-toolkit 11
15 odyssey 9
16 polykill 9
17 ideatracker 0

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com