Skip to content

Optimize memory allocation in Rust with Auto-Allocator. Enjoy smart, platform-aware performance boosts effortlessly. πŸŒŸπŸš€

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
MPL-2.0
LICENSE-MPL
Notifications You must be signed in to change notification settings

karimel1111/auto-allocator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Auto Allocator: High-Performance Memory Management for Rust πŸš€

License Rust Build Status Version

Table of Contents

Overview

Auto Allocator is a zero-configuration memory allocator designed for Rust. With just one line of code, you can achieve up to 1.6x faster allocation performance across various platforms. This library aims to simplify memory management while optimizing performance, making it an excellent choice for systems programming, embedded applications, and WebAssembly.

Features

  • Zero Configuration: No complex setup is needed. Just add one line to your project.
  • High Performance: Experience significant speed improvements in memory allocation.
  • Cross-Platform: Works seamlessly on multiple platforms, including embedded systems.
  • Hardware Aware: Adapts to the underlying hardware for optimal performance.
  • Memory Optimization: Reduces fragmentation and improves allocation speed.
  • No-std Support: Use it in environments without the standard library.
  • Compatibility with WebAssembly: Perfect for web applications needing efficient memory management.

Installation

To get started with Auto Allocator, you can add it to your Cargo.toml file. Here’s how:

[dependencies]
auto-allocator = "0.1"

After adding the dependency, run the following command to fetch the library:

cargo build

For the latest version and updates, check the Releases section.

Usage

Using Auto Allocator is straightforward. Here’s a simple example to illustrate how to integrate it into your Rust project:

// Import the allocator
use auto_allocator::Allocator;

fn main() {
    // Initialize the allocator
    Allocator::init();

    // Now you can allocate memory efficiently
    let vec = vec![1, 2, 3, 4, 5];
    println!("{:?}", vec);
}

This code snippet shows how to initialize the allocator and use it for memory allocation. The simplicity of this integration allows developers to focus on building features rather than managing memory.

Performance

Auto Allocator has been benchmarked against other popular memory allocators. In various tests, it demonstrated a performance increase of up to 1.6x compared to traditional allocators. This improvement is particularly noticeable in applications with high memory allocation demands.

Benchmark Results

Allocator Performance (allocations/sec)
Auto Allocator 1,600,000
Default Allocator 1,000,000
Other Allocator 800,000

These results indicate that Auto Allocator can significantly reduce allocation times, making it a valuable tool for performance-critical applications.

Supported Platforms

Auto Allocator is designed to work across a wide range of platforms:

  • Linux: Full support for desktop and server environments.
  • Windows: Compatible with Windows 10 and later versions.
  • macOS: Works seamlessly on macOS environments.
  • Embedded Systems: Optimized for use in resource-constrained environments.
  • WebAssembly: Perfect for applications running in the browser.

Contributing

Contributions are welcome! If you’d like to contribute to Auto Allocator, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with clear messages.
  4. Push your branch and create a pull request.

Please ensure that your code adheres to the project's coding standards and includes relevant tests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Links

For more information, visit the Releases section to download the latest version and view the change logs.

Feel free to check the GitHub Repository for additional resources and documentation.

About

Optimize memory allocation in Rust with Auto-Allocator. Enjoy smart, platform-aware performance boosts effortlessly. πŸŒŸπŸš€

Topics

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
MPL-2.0
LICENSE-MPL

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy