PackageTrack
Sign in Get early access

objc

Objective-C Runtime bindings and wrapper for Rust.

0.2.7 39M downloads/mo #1455 most downloaded on crates.io SSheldon/rust-objc

What this package is like to depend on

Last release 7 years ago

no release in 18 months

Release timing varies

gaps range from 2 weeks to 1.7 years

Some releases are documented

notes for 10 of 24 stable releases

1 version withdrawn

withdrawn after publishing

12 years old

25 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

25 releases · Nov 2014 to Oct 2019
2015 2017 2019 2021 2023 2025
Release Pre-release Withdrawn

Releases

latest 25
  1. 0.2.7 18 Oct 2019
    Release notes

    Bump objc crate to 0.2.7

    Open source →
    Release notes

    Fixed

    • Uses of msg_send! will now correctly fail to compile if no return type can be inferred, instead of relying on an edge case of the compiler that will soon change and silently cause undefined behavior.
    Open source →
  2. 0.2.6 25 Mar 2019
    Release notes

    Added a changelog entry for version 0.2.6

    Open source →
    Release notes

    Fixed

    • Suppressed a deprecation warning in sel!, msg_send!, and class!.
    Open source →
  3. 0.2.5 24 Jul 2018
    Release notes

    Bump objc crate to 0.2.5

    Open source →
    Release notes

    Added

    • autoreleasepool returns the value returned by its body closure.
    Open source →
  4. 0.2.4 22 Jul 2018
    Release notes

    Bump objc crate to 0.2.4

    Open source →
    Release notes

    Added

    • Added an rc module with reference counting utilities: StrongPtr, WeakPtr, and autoreleasepool.

    • Added some reference counting ABI foreign functions to the runtime module.

    Fixed

    • Messaging nil under GNUstep now correctly returns zeroed results for all return types.
    Open source →
  5. 0.2.3 07 Jul 2018
    Release notes

    Added a changelog entry for version 0.2.3

    Open source →
    Release notes

    Added

    • Added a class! macro for getting statically-known classes. The result is non-optional (avoiding a need to unwrap) and cached so each usage will only look up the class once.

    • Added caching to the sel! macro so that each usage will only register the selector once.

    Fixed

    • Fixed the implementation of objc::runtime structs so there can't be unsound references to uninhabited types.
    Open source →
  6. 0.2.2 30 Oct 2016
    Release notes

    Added a changelog entry for version 0.2.2.

    Open source →
    Release notes

    Added

    • Implemented Sync and Send for Sel.
    Open source →
  7. 0.2.1 23 Apr 2016
    Release notes

    Bump objc crate to 0.2.1.

    Open source →
    Release notes

    Added

    • Added support for working with protocols with the Protocol struct. The protocols a class conforms to can be examined with the new Class::adopted_protocols and Class::conforms_to methods.

    • Protocols can be declared using the new ProtocolDecl struct.

    Open source →
  8. 0.2.0 20 Mar 2016
    Release notes

    Remove the unused encode! macro.

    Open source →
    Release notes

    Added

    • Added verification for the types used when sending messages. This can be enabled for all messages with the "verify_message" feature, or you can test before sending specific messages with the Message::verify_message method. Verification errors are reported using the new MessageError struct.

    • Added support for the GNUstep runtime! Operating systems besides OSX and iOS will fall back to the GNUstep runtime.

    • Root classes can be declared by using the ClassDecl::root constructor.

    Changed

    • C types are now used from std::os::raw rather than libc. This means Encode may not be implemented for libc types; switch them to the std::os::raw equivalents instead. This avoids an issue that would arise from simultaneously using different versions of the libc crate.

    • Dynamic messaging was moved into the Message trait; instead of ().send(obj, sel!(description)), use obj.send_message(sel!(description), ()).

    • Rearranged the parameters to ClassDecl::new for consistency; instead of ClassDecl::new(superclass, "MyObject"), use ClassDecl::new("MyObject", superclass).

    • Overhauled the MethodImplementation trait. Encodings are now accessed through the MethodImplementation::Args associated type. The imp_for method was replaced with imp and no longer takes a selector or returns an UnequalArgsError, although ClassDecl::add_method still validates the number of arguments.

    • Updated the definition of Imp to not use the old dispatch prototypes. To invoke an Imp, it must first be transmuted to the correct type.

    • Removed objc_msgSend functions from the runtime module; the availability of these functions varies and they shouldn't be called without trasmuting, so they are now hidden as an implementation detail of messaging.

    Fixed

    • Corrected alignment of ivars in ClassDecl; declared classes may now have a smaller size.

    • With the "exception" or "verify_message" feature enabled, panics from msg_send! will now be triggered from the line and file where the macro is used, rather than from within the implementation of messaging.

    Open source →
  9. 0.1.8 06 Nov 2015
    Release notes

    Bump objc crate to 0.1.8.

    Open source →
  10. 0.1.7 23 Sep 2015
    Release notes

    Bump objc crate to 0.1.7.

    Open source →
  11. 0.1.6 08 Aug 2015

    Nothing published for this version

  12. 0.1.5 02 May 2015

    Nothing published for this version

  13. 0.1.4 17 Apr 2015

    Nothing published for this version

  14. 0.1.3 11 Apr 2015

    Nothing published for this version

  15. 0.1.2 04 Apr 2015

    Nothing published for this version

  16. 0.1.1 27 Mar 2015

    Nothing published for this version

  17. 0.1.0 22 Mar 2015

    Nothing published for this version

  18. 0.0.8 09 Mar 2015

    Nothing published for this version

  19. 0.0.7 22 Feb 2015

    Nothing published for this version

  20. 0.0.6 17 Feb 2015

    Nothing published for this version

  21. 0.0.5 16 Feb 2015

    Nothing published for this version

  22. 0.0.4 17 Jan 2015

    Nothing published for this version

  23. 0.0.3 13 Jan 2015

    Nothing published for this version

  24. 0.0.2 11 Jan 2015 withdrawn

    Nothing published for this version

  25. 0.0.1 23 Nov 2014

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive