{"id":28749705,"url":"https://github.com/psigen/ace","last_synced_at":"2025-06-16T20:44:13.568Z","repository":{"id":12078081,"uuid":"14665547","full_name":"psigen/ace","owner":"psigen","description":"The ADAPTIVE Communication Environment","archived":false,"fork":false,"pushed_at":"2014-11-25T15:00:38.000Z","size":22160,"stargazers_count":18,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-04-08T04:47:44.436Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.cs.wustl.edu/~schmidt/ACE.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/psigen.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-24T17:28:22.000Z","updated_at":"2023-03-01T19:41:58.000Z","dependencies_parsed_at":"2022-09-10T06:02:30.290Z","dependency_job_id":null,"html_url":"https://github.com/psigen/ace","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/psigen/ace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psigen%2Face","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psigen%2Face/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psigen%2Face/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psigen%2Face/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/psigen","download_url":"https://codeload.github.com/psigen/ace/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/psigen%2Face/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260236413,"owners_count":22979409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-16T20:44:12.845Z","updated_at":"2025-06-16T20:44:13.541Z","avatar_url":"https://github.com/psigen.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"$Id$\n\nThis document is also available at the following URL:\n\nhttp://www.dre.vanderbilt.edu/~schmidt/ACE.html\n\nAll software and documentation is available via both anonymous ftp and\nthe http.]\n\nTHE ADAPTIVE COMMUNICATION ENVIRONMENT (ACE)\n\nAn Object-Oriented Network Programming Toolkit\n\n----------------------------------------\n\nOverview of ACE\n\nThe ADAPTIVE Communication Environment (ACE) is an object-oriented\n(OO) toolkit that implements fundamental design patterns for\ncommunication software.  ACE provides a rich set of reusable C++\nwrappers and frameworks that perform common communication software\ntasks across a range of OS platforms, including Win32/Win64, most\nversions of UNIX (e.g., SunOS, HP-UX , AIX, Linux, NetBSD, and FreeBSD),\nreal-time operating systems (e.g., VxWorks, Chorus, LynxOS, and QNX),\nOpenVMS, and MVS OpenEdition.  A single source tree is used for all\nthese platforms and porting ACE to other platforms is relatively easy.\n\nThe communication software components provided by ACE include event\ndemultiplexing and event handler dispatching, service initialization,\ninterprocess communication, shared memory management, message routing,\ndynamic (re)configuration of distributed services, multi-threading,\nand concurrency control.  There are both C++ and Java versions of ACE\navailable.\n\nACE is targeted for developers of high-performance and real-time\ncommunication services and applications on UNIX, POSIX, and Win32\nplatforms.  ACE simplifies the development of OO network applications\nand services that utilize interprocess communication, event\ndemultiplexing, explicit dynamic linking, and concurrency.  ACE\nautomates system configuration and reconfiguration by dynamically\nlinking services into applications at run-time and executing these\nservices in one or more processes or threads.\n\nACE is currently used in commercial projects and products by dozens of\ncompanies including Ericsson, Bellcore, Siemens, Motorola, Kodak,\nBoeing, Lucent, DEC, Lockheed Martin, and SAIC.  Commercial support\nfor ACE is available from several companies as listed at\nhttp://www.cs.wustl.edu/~schmidt/commercial-support.html\n\n----------------------------------------\n\nC++ Wrappers for OS Interfaces\n\nThe lower-level portions of ACE provide a set of portable and\ntype-secure C++ wrappers that encapsulate the following C language OS\ninterfaces:\n\n        . IPC mechanisms\n                -- e.g., Internet- and UNIX-domain sockets, TLI, Named\n                   Pipes (for UNIX and Win32) and STREAM pipes;\n\n        . Event demultiplexing\n                -- e.g., select(), poll(), and Win32\n                   WaitForMultipleObjects and I/O completion ports;\n\n        . Multi-threading and synchronization\n                -- e.g., Solaris threads, POSIX Pthreads, and Win32\n                   threads;\n\n        . Explicit dynamic linking\n                -- e.g., dlopen/dlsym on UNIX and LoadLibrary/GetProc\n                   on Win32;\n\n        . Memory-mapped files and shared memory management\n                -- e.g., BSD mmap(), SYSV shared memory, and Win32\n                   shared memory;\n\n        . System V IPC\n                -- e.g., shared memory, semaphores, message queues.\n\nThe OS Adaptation Layer shields the upper levels of ACE from platform\ndependencies associated with the underlying OS interfaces.\n\n----------------------------------------\n\nFrameworks and Class Categories\n\nACE also contains a higher-level network programming framework that\nintegrates and enhances the lower-level C++ wrappers.  This framework\nsupports the dynamic configuration of concurrent distributed services\ninto applications.  The framework portion of ACE contains the\nfollowing class categories:\n\n        . The Reactor\n                -- Supports both Reactive and Proactive I/O;\n\n        . The Service Configurator\n                -- Support dynamic (re)configuration of objects;\n\n        . The ADAPTIVE Service Executive\n                -- A user-level implementation of System V STREAMS,\n                   that supports modular integration of\n                   hierarchically-related communicaion services;\n\n        . Concurrency\n                -- Various types of higher-level concurrency\n                   control and synchronization patterns (such as\n                   Polymorphic Futures and Active Objects);\n\n        . Shared Malloc\n                -- Components for managing dynamically allocation\n                   of shared and local memory;\n\n----------------------------------------\n\nDistributed Services and Components\n\nFinally, ACE provides a standard library of distributed services that\nare packaged as components.  These service components play two roles\nin ACE:\n\n        1. They provide reusable components for common distributed\n           system tasks such as logging, naming, locking, and time\n           synchronization.\n\n        2. They illustrate how to utilize ACE features such as the\n           Reactor, Service Configurator, Service Initialization,\n           Concurrency, and IPC components.\n\n----------------------------------------\n\nMiddleware Applications\n\nACE has been used in research and development projects at many\nuniversities and companies.  For instance, it has been used to build\navionics systems at Boeing, telecommunication systems at Bellcore,\nEricsson, Motorola, and Lucent; medical imaging systems at Siemens and\nKodak; and many academic research projects.  Two example middleware\napplications provided with the ACE release include:\n\n        1. The ACE ORB (TAO) -- TAO is a real-time implementation of\n           CORBA built using the framework components and patterns\n           provided by ACE.\n\n        2. JAWS -- JAWS is a high-performance, adaptive Web server\n           built using the components in ACE.\n\n----------------------------------------\n\nOBTAINING ACE\n\nACE may be obtained electronically from\nhttp://download.dre.vanderbilt.edu.  This release contains the source\ncode, test drivers, and example applications (including JAWS) for C++\nwrapper libraries and the higher-level ACE network programming\nframework developed as part of the ADAPTIVE project at the University\nof California, Irvine, Washington University, St. Louis, and\nVanderbilt University.\n\nYou can get The ACE ORB (TAO) in a companion release at the same URL.\n\n----------------------------------------\n\nACE DOCUMENTATION AND TUTORIALS\n\nMany of the C++ wrappers and higher-level components have been\ndescribed in issues of the C++ Report, as well as in proceedings of\nmany journals, conferences, and workshops.\n\nA collection of white papers and tutorial handouts are included at\n\nhttp://www.dre.vanderbilt.edu/~schmidt/ACE-papers.html\n\nThis page contains PDF versions of various papers that describe\ndifferent aspects of ACE.\n\nThis material is also available available via the WWW at URL:\n\nhttp://www.dre.vanderbilt.edu/~schmidt/ACE.html\n\n----------------------------------------\n\nACE MAILING LIST AND NEWSGROUP\n\nA mailing list, ace-users@list.isis.vanderbilt.edu, is available for\ndiscussing bug fixes, enhancements, and porting issues regarding ACE.\nPlease send mail to me at the\nace-users-request@list.isis.vanderbilt.edu if you'd like to join the\nmailing list.  There is also a USENET newsgroup called\ncomp.soft-sys.ace. Please see\nhttp://www.dre.vanderbilt.edu/~schmidt/ACE-mail.html for details on\nhow to subscribe to the mailing list.\n\n----------------------------------------\n\nBUILDING AND INSTALLING ACE\n\nPlease refer to the\nhttp://www.dre.vanderbilt.edu/~schmidt/ACE-install.html file for\ninformation on how to build and test the ACE wrappers.  The\nBIBLIOGRAPHY file contains information on where to obtain articles\nthat describe the ACE wrappers and the ADAPTIVE system in more detail.\n\nThe current release has been tested extensively, but if you find any\nbugs, please report them to the ACE mailing list\nace-users@list.isis.vanderbilt.edu using the\n$ACE_ROOT/PROBLEM-REPORT-FORM.  Please use the same form to submit\nquestions, comments, etc.  To ensure that you see responses, please do\none of the following:\n\n    1) Subscribe to the ace-users mail list, by sending email with\n       contents \"subscribe ace-users\" to\n       ace-users-request@list.isis.vanderbilt.edu.\n\n    2) Or, monitor the comp.soft-sys.ace newsgroup for responses.\n\n----------------------------------------\n\nACKNOWLEDGEMENTS\n\nPlease see the file `$ACE_ROOT/THANKS' for a list of the thousands of\npeople who've contributed to ACE and TAO over the years.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsigen%2Face","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpsigen%2Face","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpsigen%2Face/lists"}