Extensible Iterable class creation utilities
Provides x-iterable class template
Tools for some x-iterable packages
Deques are a generalization of stacks and queues
Get the first fulfilled promise that satisfies the provided testing function
A tiny, zero-dependency yet spec-compliant asynchronous iterator polyfill/ponyfill for ReadableStreams.
[](http://www.typescriptlang.org/) [](https://www.npmjs.com/package/@n1ru4l/push-pull-async
Converts iterable objects into readable streams.
Extended iterable class, providing lazy array-like methods with automatic async and return/throw forwarding
Iterable wrapper that add methods to read ahead or behind current item.
Convert a string/promise/array/iterable/asynciterable/buffer/typedarray/arraybuffer/object into a stream
A collection of reusable typeclasses for the Effect ecosystem
Iterable SDK for React Native.
The Interactive Extensions for JavaScript
Utilities for JavaScript Iterable and AsyncIterable
An iterable is a sequence of values.
Array manipulation, ordering, searching, summarizing, etc.
Checks if a given object is iterable
Split an iterable into evenly sized chunks
Convert streaming iterables to Node.js streams
Set of classes used for async prefetching with backpressure (IterableMapper) and async flushing with backpressure (IterableQueueMapper, IterableQueueMapperSimple)
A tiny but capable push & pull stream library for TypeScript and Flow
Config plugin for @iterable/react-native-sdk
Convert Node.js streams to streaming iterables
A simple HTTP load testing library and CLI tool
Defines and implements Iterable, Collection and CollectionMut traits to represent types that can be iterated over multiple times.
Computes approximation within a given error_limit to the values of a root of an arbitrary function f(x) or to the value of inverse function g(y) = x. Uses Newton-Raphson or Secant methods. Requires one (Newton-Raphson) or two (Secant) estimates of the target value. Raises NoConvergenceError when it does not converge within the set error_limit, on set number of iterations.
GRYDRA v2.0 is a complete, modular Ruby library for building, training, and deploying neural networks. NEW in v2.0: - Complete modular architecture with 29 organized files - Keyword arguments API for better readability - Full implementations (no more "simplified" versions) - 8 loss functions (MSE, MAE, Huber, Cross-Entropy, Hinge, Log-Cosh, Quantile) - 5 optimizers (Adam, SGD, RMSprop, AdaGrad, AdamW) - 6 training callbacks (EarlyStopping, LearningRateScheduler, ReduceLROnPlateau, ModelCheckpoint, CSVLogger, ProgressBar) - Complete LSTM implementation with backpropagation - Complete 2D Convolutional layer with padding and stride - Real PCA with eigenvalue decomposition using Power Iteration - Multiple activation functions (Tanh, ReLU, Leaky ReLU, Sigmoid, Swish, GELU, Softmax) - Regularization (Dropout, L1, L2) - Weight initialization (Xavier, He) - Data normalization (Z-Score, Min-Max) - Comprehensive metrics (MSE, MAE, Accuracy, Precision, Recall, F1, Confusion Matrix, AUC-ROC) - Advanced training (mini-batch, early stopping, learning rate decay, validation split) - Cross-validation and hyperparameter search - Text processing (vocabulary, binary vectorization, TF-IDF) - Model persistence (save/load with Marshal) - Network visualization and gradient analysis - Simplified EasyNetwork interface - 100% backward compatibility with v1.x Perfect for machine learning projects, research, and education in Ruby.
== Description ["Kiwi is a versatile entity component system focussing on fast iteration and a nice api.\n", "\n", "To get started, read the [usage guide](#usage) below.\n", "\n", "[](https://github.com/Jomy10/kiwi-ecs-ruby/actions/workflows/tests.yml)\n", "\n", "## Installation\n", "\n", "The library is available from [ruby gems](https://rubygems.org/gems/kiwi-ecs):\n", "\n", "```sh\n", "gem install kiwi-ecs\n", "```\n", "\n", "To use it in your ruby source files:\n", "\n", "```ruby\n", "require 'kiwi-ecs'\n", "```\n", "\n", "## Usage\n", "\n", "### The world\n", "\n", "The world is the main object that controls the ecs.\n", "\n", "```ruby\n", "world = Kiwi::World.new\n", "```\n", "\n", "### Components\n", "\n", "Creating a component is as simple as declaring a struct:\n", "\n", "```ruby\n", "Position = Struct.new :x, :y\n", "```\n", "\n", "Classes can also be used instead of structs\n", "\n", "```ruby\n", "class Velocity\n", " attr_accessor :x\n", " attr_accessor :y\n", "end\n", "```\n", "\n", "### Entities\n", "\n", "An entity is spawned with a set of components:\n", "\n", "```ruby\n", "entityId = world.spawn(Position.new(10, 10))\n", "\n", "world.spawn(Position.new(3, 5), Velocity.new(1.5, 0.0))\n", "```\n", "\n", "The `world.spawn(*components)` function will return the id of the spawned entity.\n", "\n", "Killing an entity can be done using `world.kill(entityId)`:\n", "\n", "```ruby\n", "world.kill(entityId)\n", "```\n", "\n", "### Systems\n", "\n", "#### Queries\n", "\n", "Queries can be constructed as follows:\n", "\n", "```ruby\n", "# Query all position componentss\n", "world.query(Position) do |pos|\n", " puts pos\n", "end\n", "\n", "# Query all entities having a position and a velocity component, and their entity ids\n", "world.query_with_ids(Position, Velocity) do |id, pos, vel|\n", " # ...\n", "end\n", "```\n", "\n", "### Flags\n", "\n", "Entities can be tagged using flags\n", "\n", "#### Defining flags\n", "\n", "A flag is an integer\n", "\n", "```ruby\n", "module Flags\n", " Player = 0\n", " Enemy = 1\n", "end\n", "```\n", "\n", "#### Setting flags\n", "\n", "```ruby\n", "id = world.spawn\n", "\n", "world.set_flag(id, Flags::Player)\n", "```\n", "\n", "#### Removing a flag\n", "\n", "```ruby\n", "world.remove_flag(id, Flags::Player)\n", "```\n", "\n", "#### Checking wether an entity has a flag\n", "\n", "```ruby\n", "world.has_flag(id, Flags::Player)\n", "```\n", "\n", "#### Filtering queries with flags\n", "\n", "```ruby\n", "world.query_with_ids(Pos)\n", " .filter do |id, pos|\n", " world.has_flag(id, Flags::Player)\n", " end\n", " .each do |id, pos|\n", " # Do something with the filtered query\n", " end\n", "```\n", "\n", "The `hasFlags` function is also available for when you want to check multiple flags.\n", "\n", "## Road map\n", "\n", "- [ ] System groups\n", "\n", "## Contributing\n", "\n", "Contributors are welcome to open an issue requesting new features or fixes or opening a pull request for them.\n", "\n", "## License\n", "\n", "The library is licensed under LGPLv3.\n"]